Showing posts with label single user mode. Show all posts
Showing posts with label single user mode. Show all posts

Thursday, May 24, 2012

FreeBSD: สภาวะแวดล้อมการทำงาน single user mode

จากลำดับของเรื่องรวที่ผ่านมา บางท่านอาจจะสงกาว่า ก็ในเมื่อเรายังไม่เริ่มสู่สภาวะปกติ แล้ว network interface จะทำงานได้อย่างไร

อันนี้ ก็อย่างกังวลมากไปนัก ในสาระบบแฟ้ม /etc/rc.d/ นั้นมี ๒ แฟ้ม สำหรับ เริ่ม ให้ network ทำงานได้ คือ

/etc/rc.d/netif
/etc/rc.d/routing

ลำพังหากท่านใช้งานที่บ้าน ซึ่งเรียกผ่าน ADSL model แล้ว เพียงเรียก

# /etc/rc.d/netif start

ก็ได้ทั้งการต่อเชื่อมกับ ISP และได้ default route มาด้วยไปในคราเดียว (ได้ความรู้นี้จาก โฟรัม )

โดดเดี่ยวเดียวดาย ไม่ไร้เพื่อน
ซีงิต ในสภาพโดดเดี่ยวเดียวดาย แต่ยังสามารถต่อกับ internet ได้ ก็หรูแล้ว  สำคัญ ท่านอย่าได้ละทิ้ง console เป็นอันขาด ต้องประจำอยู่ที่หน้าจอนั่นแหละ น่ะครับ ไม่งั้นคนจะมาเปลี่ยนระหัสลับของ root เข้า แล้วจะเสียใจเอาทีหลัง

ขอให้โชคดีในการทำงานใน single user mode น่ะครับ  .... รูป จากแฟ้มตัวอย่างของ epix ข้างล่างนี้ไงครับ

Wednesday, May 23, 2012

FreeBSD: สภาวะแวดล้อมการทำงาน single user mode

จากทั้งสองตอนที่ผ่านมา ไม่ว่าจะเป็น single user mode หรือ การเพิ่ม hard disk ก็พอเพียงที่จะนำไปสู่สาระในเรื่องการทำงานภายใต้สภาพแวดล้อมโดดเดี่ยว เป็นอิสระจากการรบกวนของ process อื่นๆที่ไม่จำเป็นกันได้แล้ว

ต้นเหตุของเรื่อง เกิดจากการ compile แล้วเครื่องดับไปเพราะความร้อนที่ตัว cpu สูงมาก เลยตัดใจมาทำงานใน single user mode เพื่อลดการทำงานของ process ที่ไม่เกี่ยวข้อง ที่ไม่จำเป็นออกไปให้หมด

ปกติ มะไฟ กำหนดให้ compile โปรแกรมพวก ports ทั้งหลายไว้ที่ partition อื่น ที่ไม่ใช่ /usr/ports โดยกำหนดเป็น ตัวแปรสภาพแวดล้อม ดังนี้

${WRKDIRPREFIX}

และที่สำหรับเก็บพวก source files ในรูปของ .tar.gz ก็เก็บไว้ที่ตามแต่ตัวแปรสภาพแวดล้อมจะชี้ไป ซึ่งตัวแปรสภาพแวดล้อมนี้คือ

${DISTDIR}

แล้วก็ส่วนที่เป็นสันดาน หรือนิสัยแปลกๆอีกอย่างคือ เมื่อ compile โปรแกรมได้แล้ว มักจะเก็บไว้เป็น packages ไปเสียด้วยเลย และก็เช่นกัน เก็บไว้ที่ไหน ก็ตามแต่ตัวแปรสภาพแวดล้อมจะชี้ไป ซึ่งทาง FreeBSD เขาก็กำหนดมาให้แล้วว่า เป็นตัวแปรชื่อ

${PACKAGES}

เหล่านี้ ดังนี้ เป็นต้น และก็ไม่ต้องแปลกใจว่า จะไปกำหนดให้ชี้ไปที่ไหน ตามนี้เลยครับ อย่างที่นึก อย่างที่คาดเดากันไว้แหละ

WRKDIRPREFIX=/kaitag/MNI
DISTDIR=/kaitag/distfiles
PACKAGES=/kaitag/packages

สามบรรทัดข้างบนนี้ ให้ท่านเขียนไว้ในแฟ้ม /etc/make.conf เลยครับ

อ้อๆ ทั้งสามสาระบบแฟ้มนั้น เป็นเจ้าของโดย root:wheel น่ะครับ ไม่งั้น เขียนลงไม่ได้

ลักษณะนิสัยอีกประการ (ที่อาจจะสร้างเสริมมาโดยหลักสูตรใหม่มั้ง) คือเมื่อเวลาสร้างโลกนั้น ระบบจะเขียนลงไปในสาระบบแฟ้ม /usr/obj ที่ดูทีไร ก็ไม่ชอบใจเลย เลยขอยักไปไว้ใน /kaitag/obj ด้วยเสียเลย โดยกำหนดให้เป็น ตัวแปรสภาพแวดล้อม ชื่อ MAKEOBJDIRPREFIX และให้เขียนไว้ที่แฟ้ม /root/.profile ดังนี้ครับ

MAKEOBJDIRPREFIX=/kaitag/obj
export MAKEOBJDIRPREFIX

ทั้งนี้ก็เพื่อว่า เมื่อท่านลงสู่ single user mode แล้ว จะได้ไม่ต้องมาเสียเวลาเขียนอีก

สรุป

มีใครสงสัยอะไรมั้ย
สำหรับแฟ้ม /root/.profile นั้น ขอให้ท่านเพิ่มบรรทัดดังต่อไปนี้น่ะครับ และ หวังว่ายังคงจำกันได้

MAKEOBJDIRPREFIX=/kaitag/obj
export  MAKEOBJDIRPREFIX

alias  rm='rm  -i'
alias  mv='mv  -i'
alias  cp='cp  -i'
alias  ll='ls  -lA'

set  -o  vi
set  autolist

และสำหรับแฟ้ม /etc/make.conf ขอให้เพิ่มบรรทัดดังต่อไปนี้น่ะครับ

WRKDIRPREFIX=/kaitag/MNI
DISTDIR=/kaitag/distfiles
PACKAGES=/kaitag/packages

ก็คงพอให้ท่านทำงานได้ และหวังว่า คงไม่ลืม ๔ คำสั่งแรก หลังจากได้รับ shell เมื่อก้าวลงสู่ single user mode แล้ว

# swapon -a
# adjkerntz -i
# mount -a
# umount /home

ก็คงจบสาระที่วางไว้เพียงเท่านี้ และขอได้รับการขอบคุณจาก มะไฟ  สำหรับเวลาที่ท่านสละมาอ่าน
ลป. หวังว่าคงจำวิธีการ และ ข้อกำหนดในการเก็บ packages ได้น่ะครับ ว่า ท่านต้องสร้างสาระบบแฟ้ม ${PACKAGES}/All ไว้ก่อนด้วย โดยสั่งเพียงหนเดียว
#  mkdir  -p  ${PACKAGES}/All

FreeBSD: สภาวะแวดล้อมการทำงาน . การเพิ่ม hard dsik

miw miw
จากหัวข้อ single user mode นั้นยังไม่สามารถทำให้ท่านทำงานกับ ports ได้อย่างเป็นอิสระนัก  ถ้าจะให้ดี สมควรแยกเอา partition ออกมาโดยจำเพาะเพื่อ ports เลย ก็จะเป็นการดีมิใช่น้อย

ในการนี้ ใคร่ขอแนะนำให้เพิ่ม usb hard disk มาสักก้อน ความจุราวๆสามสี่ร้อยกิกะไบท์ น่าจะพอ แต่คงหายากในยามนี้ ที่ความจุทะลุเทอราไบท์ไปแล้ว กอรปด้วยความที่โรงงานผลิต ยังไม่สามารถ ผลักดันสินค้า ออกมาสู้ท้องตลาด อันเนื่องาจาก น้ำท่วประเทศ เมื่อปีที่แล้ว  เอาเป็นว่า ท่านหามาได้ก็แล้วกันน่ะ usb hard disk

สำหรับวิธีการโดยทั่วๆไปในการเพิ่ม hard disk ให้กับระบบนั้น สมควรดำเนินการใน single user mode เป็นดีที่สุด  ก็ขอให้ท่านนำ usb hard disk มาต่อเข้ากับเครื่องผ่านทาง usb port ใด port หนึ่ง แล้วเปิดระบบปฏิบัติการ แล้วลงสู่ single user mode แล้วตระเตรียมการตามที่บอกไว้ในเรื่องท่านผ่านมานั้น


จากนั้นเรียก /usr/sbin/sysinstall มาทำงานจัดการเพิ่ม hard disk และจัดการ สร้าง partition รวมทั้ง mount point ให้ ตาม links ที่วางไว้ให้นี้ โปรดอ่านเอาจากนั้นให้ละเอียดก่อนเป็นเบื้องต้น (มะไฟ แปลมาจาก hand book ครับ)

FreeBSD: การจัดแบ่ง partition
FreeBSD: sysinstall ---> Allocating Disk Space
FreeBSD: sysinstall ---> Allocating Disk Space(cont.)
FreeBSD: installation


การกำหนด mount point
 
เอาหละ เอาเป็นว่าทำได้แล้ว และให้ usb hard disk นั้นเรียกชื่อว่า da0 และใช้ทั้งก้อนเพื่อ FreeBSD ดังนั้น slice จึงเป็น 1

ท่านเจียดเนื้อที่แบ่งเป็น swap partition สัก 4 GB และ file system ในส่วนที่เหลือของความจุทั้งหมด ระบบ จะกำหนดให้เองว่าเป็น partition d ชื่อของ file system นี้ก็คือ /dev/da0s1d โดยวาง mount point ไว้ที่ /kaitag

ดั่งนี้แล้ว /etc/fstab สำหรับ usb hard disk ก้อนใหม่นี้ ก็เป็นดังนี้

/dev/da0s1b        none        swap    sw        0    0
/dev/da0s1d        /kaitag        ufs      rw        2    2

หากชื่อของ usb hard disk ที่ท่านมี ท่านใช้ ต่างไปจากนี้ ก็ให้แก้ไขให้ตรง ให้สอดคล้องกันด้วย  อนึ่ง ๒ บรรทัดข้างบนนั้น ขอให้เพิ่มเข้าไปในแฟ้ม /etc/fstab ด้วย เพื่อว่าเมื่อท่านเปิดเครื่องทำงานแล้ว ระบบ จะได้ mount ให้เองโดยอัตโนมัติ


การเพิ่ม hard disk และการกำหนด mout point ก็มีเพียงเท่านี้ จะยังไม่เพิ่มสาระอื่น ให้รกมากไปกว่านี้ครับ

Tuesday, May 22, 2012

FreeBSD: สภาวะแวดล้อมการทำงาน single user mode

มูลเหตุ ที่ต้องเขียนเรื่องนี้ขึ้นมานั้น ก็เนื่องมาจากการที่ต้องลงไปทำงานใน single user mode บ่อยครั้งเป็นพิเศษ ในระยะนี้ ทั้งนี้เพราะต้องการลดการทำงานของ process อื่นๆลง เพื่อไม่ให้อุณหภูมิของ cpu สูงเกินไป

อุณหภูมิของ cpu สูงนั้นเกิดจากการที่ไป compile บางโปรแกรมเข้า ซึ่งก็ให้งุนงงงไปหมดทั้งตัวเหมือนกันว่า มันเขียนโปรแกรมของมันยังไง ถึงกับให้ cpu ทำงานหนักมาก จนความร้อนขึ้นสูงขนาดนั้น 102.5 c เลยครับ

โปรแกรมที่ว่านี้ก็ได้แก่ gcc, firefox, chromium, boost-*, openjdk, openoffice, libreoffice พวกนี้ โดยเฉพาะอย่างยิ่ง ตัวหลังสุดเนี่ย ยอดเยี่ยมกระเทียมดองเอาเลยทีเดียวเชียว

พอสั่ง make ทีไร พวกเป็นต้องไปไล่ตั้งแต่ต้นใหม่ไปเสียทุกครั้ง

เครื่องที่ใช้ เป็น notebook ตัวเล็กๆ พอใช้ไปสักพักพวกก็ร้อน แล้วพาลดับตัวเองก่อนที่จะพัง ไปทุกครั้ง   เริ่มตั้งแต่ May 16 จนเอาเนี่ย วันนี้ May 22 เพิ่งจะเสร็จ เพราะความที่คอยเริ่มใหม่ทุกครั้ง ที่เครื่องตัด .... อย่างน้อยๆ ก็ สาม-สี่ชั่วโมงล่ะ ถึงเริ่มใหม่ได้อีกหน ขืนไม่หยุดรอ ก็พอดี เครื่องไหม้เอาได้

สิบนาฑีครับ ใช่ครับ เครื่อง compile ไม่เกินไปกว่า 10 นาฑี ก็ดับ ซึ่งพอดับ บางทีต้องมาเสียเวลาทำ ฟิ้สกี้ ก่อนอีกถึงจะทำงานต่อไปได้

เลยตัดใจลงมาทำงานที่ single user mode เสียเลยดีกว่า ซึ่งทำให้บาง partition นั้นไม่ต้อง mount ด้วยซ้ำไป

ประเด็นปัญหา กลับอยู่ที่ว่า ความคล่องตัวในการทำงานใน mode นี้กลับไม่มี แถมยังอันตรายมากอีกด้วย เพราะเวลาสั่ง ลบ หรือ สำเนา หรือ ย้ายแฟ้มเอกสาร พวกก็ทำไปดุ่ยๆ ไม่มีมารอถามเราว่า จะเขียนทับไหม แน่ใจน่ะว่าจะลบทิ้ง ...ฯลฯ  เหล่านี้ ไม่มีมาถาม นับว่าร้ายแรงมาก หากไปเผลอลบ / เข้า

ดังนั้น เมื่อลงสู่ single user mode แล้ว สิ่งที่ต้องทำเป็นลำดับแรกหลังจากได้รับ shell มาแล้ว (ซึ่งก็คือ sh) ก็ได้แก่ลำดับคำสั่งพวกนี้

# swapon  -a
# adjkerntz  -i
# mount  -a
# umount  /home

# alias  rm='rm -i'
# set  -o  vi
# set  autolist

ทั้งนี้ หมายความว่า file system ทุกตัวต้องสะอาด ไม่ต้องมาเสียเวลาทำ fsck กันอีกน่ะครับ
ขออธิบายไปทีล่ะคำสั่ง ดังนี้ครับ
  1. swapon -a อันนี้ เป็นการ mount swap file system ให้กับระบบครับ ต้องทำ แล option a  นั้นก็หมายถึงว่า หากเรากำหนดว่าเครื่องนี้มี swap file system กี่ file systems ก็เอามาให้หมดแหละ
  2. adjkerntz -i อันนี้เป็นการกำหนด CMOS clock ให้กับ kernel ครับ เรื่องเวลา สำคัญมาก
  3. mount -a อันนี้ เป็นการ mount ทุก file system ที่เครื่องมีอยู่ option a หมายถึงว่า all ครับ  แต่ในตอนที่เราอยู่ใน mode นี้ ไม่มีการ login ดังนั้น partition home จึงไม่ต้องใช้ ซึ่งเราจะ un-mount เอาทีหลัง ง่ายกว่ากัน
  4. umount /home อธิบายแล้ว ในข้อบนนั้นครับ
  5. alias rm='rm -i' คำสั่งนี้ บังคับว่า หากจะลบ ต้องถามเพื่อยืนยันไปก่อนลบ ทุกครั้งไป ป้องกันไว้ ดีกว่าเสียใจในภายหลังครับ  โดยเนื้อแท้ ต้องทำสำหรับคำสั่ง cp, mv ด้วย แต่เขียนมาเพียง ๑ คำสั่ง ก็พอ
  6. set -o vi เป็นการทำให้ทำงานด้วย keyboard ได้สะดวกขึ้น ปุ่มต่างๆ จะมีหน้าที่แบบเดียวกับที่ใช้งานบน vi เลยครับ
  7. set autolist อันนี้ก็เป็นตัวอำนวยความสะดวกอีกอย่างหนึ่งให้กับการทำงานใน mode นี้ กล่าวคือ เป็น file name completion mechanism นั่นเอง  ก็ลองนึกๆดูว่า ถ้าจะพิมพ์แค่ cd /usr/ports/editors/libreoffice แค่นี้ หากต้องกดแป้นพิมพ์ไปทุกตัว ก็ เหนื่อย ท้อ แล้วครับ  ใช้ปุ้ม tab บนแป้นพิมพ์ครับ สำหรับ เติมเต็มชื่อแฟ้มที่ยังขาดหายไป ซึ่งตามตัวอย่างที่ยกมา เราพิมพ์แค่ cd /u<tab>po<tab>edit<tab>libreoff  ในเมื่อ <tab> คือการกดปุ่ม tab ครับ

ตัวแปรสภาวะแวดล้อมทำงานพวกนี้ สามคำสั่งหลังนั้น เราสามารถกำหนดไว้ในแฟ้มได้เลยครับ ไม่ต้องมาลำบากกรอกคำสั่ง ไปเสียทุกครั้งที่ลงมาทำงานใน mode นี้  ให้นำ ๓ คำสั่งหลังที่ยกมานี้ ไปไว้ในแฟ้ม /root/.profile ครับ เขียนต่อท้ายไปจากของเดิมเลยน่ะครับ

ตัวแปรสภาพแวดล้อมการทำงานอื่นๆ ที่เห็นว่าจะอำนวยความสะดวกให้ ก็ลงไว้ในแฟ้มนี้ได้ด้วยเช่นกันครับ ส่วนใหญ่จะเป็น alias เช่น ll ซึ่งก็เท่ากับเรียกใช้ ls -FlA ครับ

อ้อ สำหรับข้อที่ 6 set -o vi นั้น มันช่วยให้ท่านเรียกคำสั่งเก่าๆขึ้นมาทำงานได้ ด้วยการกด ปุ่มลูกศรขึ้น  ครับ

Sunday, October 23, 2011

bugs ในเอกสาร ระหัสผ่าน

ในเอกสารเรื่อง ระหัสผ่าน นั่นแหละ เขียนไปแล้ว มานึกๆดู ก็พบว่า ผิดพลาดคลาดเคลื่อนไป ชนิดที่ ไม่น่าให้อภัยกัน

ก็ข้อความตั้งแต่บรรทัด หรือ ใจความ

su  -l  war
passwd


นั่นแหละ มันเป็นไปไม่ได้ตั้งแต่บรรทัด

passwd

นั่นแล้ว  เพราะอะไรรึ แม้ว่า เราจะ su เข้ามาเป็น war ได้ แต่ เราก็ไม่สามารถเปลี่ยนระหัสผ่านได้ ตราบเท่าที่เราไม่รู้ระหัสผ่านเดิม !!!

เราสามารถแก้ระหัสผ่านของ user ที่ใช้ชื่อว่า war ได้ ก็โดยวิธีเดียวกับของที่ root ทำ นั่นคือ ในขณะที่อยู่ใน single user mode ให้ใช้คำสั่ง

# passwd war

เพื่อกำหนดระหัสผ่านให้กับ user ที่ใช้ชื่อว่า war ใหม่ เท่านั้น

กราบขออภัยไว้ ณ ที่นี้ด้วย ข้าผู้น้อย สมควรได้รับโทษ

เอกสารเดิม จะทำลางๆไว้ ไม่ลบออกหรอกครับ ผิด ก็คือ ผิด ไม่อาย ที่จะยอมรับผิด
เอกสารใหม่ จะเขียนต่อจากเอกสารเดิม น่ะครับ

Monday, December 28, 2009

ซีงิต ไม่เชื่ออย่าลบหลู่(ต่อ)

ชะตาชีวิต ที่เรียกว่า ซีงิต แม้ไม่สนับสนุน แต่เมื่อเกิดขึ้นมาแล้ว ก็ คงต้องบอกว่า ชะตาชีวิต หรือที่ชอบใช้คำว่า ซีงิต แทน อยู่ทุกบ่อยๆนั่นแหละครับ
เมื่อร่วมๆสามปีก่อน ซื้อคอมพิวเตอร์ให้ลูก ๑ เครื่อง ก็ให้เขาเล่นเกมส์ ไม่อยากให้ ไปเล่น ที่อื่น เพราะโดนจับขัง เกือบถูกฆ่าทิ้ง ทั้งพี่ ทั้งน้อง มาหนหนึ่งแล้ว อีกอย่าง ก็กะด้วยว่า จะให้ลูกเล่นไปสักพัก แล้วจะสอน คอมพิวเตอร์ซายแอ๋น ให้เขาไปด้วย ...ฯลฯ
จนแล้วจนรอด ก็ได้แต่คอยตอบคำถามลูก แทนที่จะได้สอนเขา
วีคก่อน คืนหนึ่ง จู่ๆ อุราก็ทำเสียงแปลกๆ แล้วก็ถามว่า คอมพ์นี้ ราคาเท่าไหร่ ซื้อมานานรึยัง ก็ให้ระแวงว่า มันคงเสีย
ไม่ผิดไป จากที่คาดคิดจริงๆ แต่ ไม่ถึงกับ ถูกต้อง ร้อยละร้อย เพราะ มันเสียแค่ อุปกรณ์พ่วงสำคัญ สำหรับ หน่วยประมวลผล ของ หน่วยแสดงผลด้วยภาพ เฮ้อ นี่มันจะบ้ากันไปถึงไหนน่ะ ก็ display หรือ graphic cards นั่นแหละน่อ
ช่วงนี้เอง ที่ Dell Inspiron 1100 ได้รับความสนใจ หรือ มีความสำคัญขึ้นมาทันที ทั้งๆที่ ก็ ตั้งใจซื้อ ให้เป็นของขวัญวันเกิด ให้กับ อุรา เมื่อหลายปีก่อนนู้น แต่ก็ยืมเขาใช้มาตลอด เพราะ ดันลง FreeBSD ไว้ แล้วเขาทั้ง ๒ ไม่ใช้ เพราะติดใจ วินปากซอย ก็เลย หยวนๆ พ่อเอาไปใช้ก่อนก็ได้ครับ
ทีนี้เอง เมื่อเครื่องลูก ที่ไม่ใช่ node หนึ่งของวงแลน แต่เป็นเครื่องที่ลูกใช้งานจริงๆ เกิดเสียขึ้นมา เขาก็ หงุดหงิด เป็นธรรมดา เห็นพ่อใช้เน็ตได้ ก็เลียบๆเคียง กะลิ่มกะเหลี่ย ขอใช้มั่ง แต่ต่อจากพ่อ หนักๆเข้า พ่อจะใช้เครื่องมั้ยครับ คืนนี้น่ะ เอากะพวกซี
เช้าวันนี้ มาทำงาน เขาเกิดอยากต่อ Dell ให้ใช้เน็ต, ก็ internet นั่นแหละ, เลยโทรฯมาถามวิธีต่อ
ได้ลองของกัน ทั้งพ่อ ทั้งลูก เพราะ มะไฟ เองก็ขึ้นชื่อว่า พูดกับคนที่ไม่ใช่ ฅน ไม่ค่อยรู้เรื่องในรอบเดียว อุรา เอง ก็จะได้รู้วิธีการต่อ internet ด้วย pppoe กันก็งวดนี้แหละ มันไม่ง่าย เหมือน วินปากซอย
เปิดเครื่องรึยัง
มันวิ่งผ่านตัวแดม่อนไปแล้ว
จำ root's password ไม่ได้ ยุ่งละซีครับ
วาจำได้
งั้น login เป็น root แล้วแก้ไขแฟ้ม /etc/ppp/ppp.conf ซะ แล้วก็ ชัดดาวลบอานาว ไปเลย อย่าอยู่ที่โคราชเสียล่ะ
ฮับพ่อ
แล้วก็บอกเขา ทางมือถือนี่แหละ ให้ทราบถึง
  1. การแก้ด้วย วีอาย vi
  2. โครงสร้างของแฟ้ม /etc/ppp/ppp.conf ว่า อะไรคือเลเบล อะไรคือคำสั่ง
  3. แล้วก็ทบทวนทุกครั้ง ก่อนที่เขาจะกดปุ่มเอ็นเท่อ, Enter
ได้ผลแฮะ ได้ผลเกินคาด เขาทำได้ และ เราก็สอนคนด้วยเสียง โดย ไม่ต้องไปเจอของจริงได้ คือ ให้เขาทำตามที่บอกได้ด้วย

โชคดีน่ะ วา
ขอบคุณฮับพ่อ
สิ่งที่สอนเขาเกี่ยวกับวีอายคือ การกระโดดไปยังตำแหน่งต้นแฟ้ม ท้ายแฟ้มด้วย 1G และ G การเข้าสู่ command mode และ data entry mode ด้วยปุ่ม Esc และคำสั่งที่สอนเขาก็มี x i ซึ่งใช้ ฆ่า แทรกตัวอักษร และ o (ตัวโอ ไม่ใช่เลขศูนย์) ซึ่งเป็นการ เปิดบรรทัดใหม่ ข้างล่างบรรทัดปัจจุบัน กับ การจบแฟ้ม ด้วยการเขียนความเปลี่ยนแปลง แล้วปิด โดยใช้ ZZ รวมทั้งการ ค้นหาpattern โดย /pattern และหาอีกต่อไปด้วย n ด้วย
ยังไม่สิ้นกระแสความคิดทบทวนว่าสอนอะไรไปมั่ง ก็ได้รับโทรศัพท์จาก อุรา อีกหน

พ่อพ่อ มันหยุดอยู่ตรงโคล่อน ครับ
โหยยยยยยยย มานอารายเนี่ย ลงมาที่ซิงเกิ้นยู้สเซ่อโหมดได้ไงฮึ
ไม่รู้ซิฮับ
เดี๋ยวๆๆ ก่อนหน้านี้ มันบอกเออเร่ออะไรมั่งครับ วานดูที่จอทีซิมันมีเม้สเสจอะไรมั้ยลูก
มันว่า อันเอ้กเป้กเต็ดเอ็นโอ้ฝไฟล์ อีทีซี อาซี ฮับ
อ้าว อืมม ไม่เป็นไร งั้นวา เคาะเอ็นเท่อ ไปเลยน่ะ ไม่ต้องบอกชงเชลอะไรหรอก ใช้ที่เขาบอกมานั่นแหละ
ฮับ

เข้าใจว่า คงบอกอะไรไม่ครบแน่แน่ เพราะแฟ้ม /etc/rc ก็ไม่ได้สั่งให้ อุรา แก้หรือแตะเลย

มันมาที่พร้อม, #, ฮับ
เออ ช่างมันเถอะ ปกติมันน่ะ วาลองทำตามนี้น่ะ mount -a

แล้วก็บอกเขาไปทีละตัว แล้วให้เขาทบทวนให้ฟังอีกเที่ยว ก่อนจะสั่งให้เขากัดปุ่ม Enter

พ่อ มันบอกว่า อิ้สอันเม้าติดน่ะ....พ่อ
เหยยยยยยย นี่มันอะไรกันเนี่ย แสดงว่า ไม่ได้ปิดโอเอ้สก่อน แต่ดันปิดเครื่องน่ะนี่
สงสัยวาปิดสวิตไฟก่อนฮับพ่อ
อ้าว ไปปิดไฟทำไม

จากบทเรียนอันนี้ ทำให้ทราบว่า คำว่า shutdown -r now ของเรา กับในแวดวงของ วินปากซอย นั้น คนละนัยจริงๆ เขาถึงต้องปิดสวิตไฟฟ้าเครื่องด้วย

วาใช้คำสั่งนี้ก่อนน่ะลูก df น่ะ
ฮับ
วาจำคอลั่มแรกซัายสุด กับขวาสุดไว้น่ะครับ
ฮับ
หากระดาษมาจดไว้เลยน่ะครับ
ฮับ

คือจะบอกให้เขาจำ file system & mount point ไว้น่ะ

วาใช้คำสั่งต่อไปนี้น่ะ ยูเม้า วรรค ลบเอ น่ะ
หืออ
ก็คำสั่งที่แล้วนั่นแหละ mount -a แต่มีตัวยูนำเท่านั้นเอง
ฮับพ่อ
ในผลลัพธ์ของคำสั่ง df น่ะ วาดูตามที่บอกให้จด ๒ คอลั่มนั้นน่ะ
ฮับ นึกออกแล้วฮับ
พ่อจะพูดคอลั่มขวาสุดน่ะ แล้ว วา เอาคอลั่มแรกซ้ายสุด ที่ตรงกันมาใช้น่ะ
เข้าใจฮับ
งั้นสะแหล้ช / ตรงกับอะไรครับ
/dev/ad0s2a ฮับ
ดีมาก งั้น ใช้คำสั่ง เอ้ฟเอ้สซีเค อันเด้อสะคอ ยูเอ้ฟเอ้ส วรรค สะแหล้ช น่ะ ทำได้มั้ย
ใช้ยังงี้รึเปล่าฮับ fsck_ufs /dev/ad0s2a (อุราอ่านคำสั่งที่เขียน มาให้ฟังทีละตัวหนังสือ)
เยี่ยมเลย วาอย่าละสายตาน่ะ บางทีเขาจะถามมา ให้บอกพ่อด้วย
ฮับ อ้อมาพอดี salvage[yn] ให้ตอบว่าไงฮับ
กดตัววายครับ ส่วนใหญ่จะตอบ yes น่ะ แต่ให้บอกพ่อทุกคำถามน่ะ
ฮับพ่อ

แล้วก็ให้ อุรา ทำ ฟิสกี้ กับทุกๆ file system ที่เหลือจนหมด จากนั้น ให้เขาทำ mount -a อีกหน แล้วรอเขาบอกอีกทีว่ามี message อะไรมั้ย เขาก็ว่า ไม่มี เลยบอกเขาไปว่า นี่แหละ ดีมากแล้ว ที่ไม่มี message อะไร นี่แหละคือความหมายของ no news is a good news
จากนั้น ก็ให้เขาแก้แฟ้ม /etc/ppp/ppp.conf อีกทีหนึ่ง เพราะนึกได้ว่า ลืมกำหนด device ไปด้วย งวดนี้ เลยให้อุราเพิ่มบรรทัดนี้
set device PPPoE:bfe0
ลงไปในกลุ่มของ default:ซึ่งเขาก็ทำได้
จากนั้น ให้เขาแก้แฟ้ม /etc/rc.conf ตรงบรรทัดของ ifconfig_bfe0 ให้เป็น ifconfig_bfe0="dhcp" ให้ได้ และถ้ามีการกำหนดหมายเลข ไอพี ในที่อื่นอีก ก็ให้ตามไปใส่ # หน้าบรรทัดนั้นทุกที่ไป ซึ่งเขาก็ทำได้
ที่สุด ให้เขาออกจาก single user mode ด้วยคำสั่ง exit
เมื่อเข้าสู่ multi user mode เห็น login prompt แล้ว เขาก็บอกว่า ปกติแล้ว เลยสั่งให้เขา login เป็น root แล้วดู routing table ว่าถูกต้องรึเปล่า ซึ่งก็พบว่าตรงตามที่เคยใช้
ให้เขาตรวจดูง่ายๆ โดยให้ลองสั่ง lynx แล้วดูผล ปรากฏว่า มันต่อออกได้ ก็บอกเขาไปว่า ใช้ได้แล้ว

บันทึกนี้ ก็เพียงจะบอกว่า ในความพยายามที่จะสอนเรื่อง unix ให้กับลูกนั้น มีมาก แต่ เขาไม่เอา นี่คงเพราะสวรรค์บันดาล หรือ ซีงิต อย่างว่าไว้ก็ได้ ทำให้เกิดเรื่อง ที่เขาต้องทำหน้าที่เป็น sys.admin. ไปโดยไม่รู้ตัว และขณะเดียวกัน เราก็ทำหน้าที่ของการให้คำแนะนำทางไกล ได้โดยไม่รู้ตัวเช่นกัน
ถึงเวลา มาเอง ... ยังงั้น ...มั้ง
ไม่เชื่อ อย่าลบหลู่ดูหมิ่นกัน
ซีงิต

Thursday, March 26, 2009

ไกลปืนเที่ยง : FreeBSD --> simply freebsd

เรื่องของ FreeBSD ตั้งแต่ง่ายๆไป จนถึงการใช้งาน FreeBSD เป็นฐานรองรับ hardware เพื่อทำหน้าที่เป็น servers และงานอื่นๆในที่สุด ใจความในตอนนี้ ถอดจาก FreeBSD Handbook บทที่ ๓ Virtual consoles and Terminals โดยแต่งเรื่องราวเสริมขึ้นบ้าง
FreeBSD สามารถใช้งานได้หลายลักษณะ หนึ่งในนั้นคืออันที่เรียกว่า พิมพ์คำสั่งตรงๆลงไปยัง text terminal และ ความสามารถทั้งหลาย ทั้งปวงของ FreeBSD กระทำผ่านนิ้วมือของท่าน ได้ด้วยวิธีนี้ ในตอนนี้ ใคร่ขอแนะนำ ให้ท่านรู้จักว่า อะไรคือ terminals และ อะไรคือ consoles และ ท่านสามารถใช้งานทั้ง ๒ แบบนี้ อย่างไร
๗ โมงครึ่ง ของอีกวันแล้ว ขอพักก่อน แป้บน่ะ
กินเถอะ แม่


Console
ถ้าท่านยังไม่ตั้งให้ FreeBSD เริ่มทำงานในกราฟโหมด ระบบ จะนำท่านมาสู่ login prompt เมื่อท่านเปิดเครื่อง และท่านจะพบกับสิ่งที่คล้ายๆกันนี้
Additional ABI support:.
Local package initialization:.
Additional TCP options:.

Fri Mar 27 01:23:45 ICT 2009

FreeBSD/i386 (jotawski.lampoon.org) (ttyv0)

login:

ข้อความ อาจจะแตกต่างไปบ้าง จากระบบของท่าน อย่างไรก็ดี ท่านสมควรพบกับสิ่งที่คล้ายๆกัน แต่สองบรรทัดสุดท้าย คือสิ่งที่ใคร่ขอแนะนำให้รู้จักโดยละเอียด สำหรับตอนนี้ ซึ่งบรรทัดที่ ๒ ก่อนสุดท้ายคือ

FreeBSD/i386 (jotawski.lampoon.org) (ttyv0)


ซึ่งมีข้อมูลเล็กๆน้อยเกี่ยวกับระบบที่ท่านเพิ่งจะเปิดใช้งานอยู่ นั่นคือ ท่านกำลังมองดู ``FreeBSD'' console ที่วิ่งบนสถาปัติยกรรมของ หน่วยประมวลผล ตระกูล Intel ในจำพวก x86 หรือเทียบเท่า ชื่อของเครื่องนี้ (unix ทุกเครื่อง มีชื่อ) คือ jotawski.lampoon.org และขณะนี้ ท่าน กำลัง จ้อง มองดู console ของระบบ ของเขาล่ะ -- terminal ที่เรียกว่า ttyv0

และที่สุด บรรทัดสุดท้าย ซึ่งจะเป็นอย่างนี้เสมอ คือ

login:

นี่เป็นส่วนที่ท่านได้รับการคาดหวังว่า ท่านจะกรอก ``username'' เพื่อเข้าสู่ FreeBSD ซึ่งจะได้รับการบอกเล่า ในลำดับถัดไป

เข้าใช้งาน FreeBSD
ฟรีบีเอ้สดี เป็นระบบหลายโปรเซส หลายผู้ใช้งาน นี่เป็นการบรรยาย แบบทั่วไป กับระบบที่ สามารถใช้งานได้หลายคน และ สามารถ วิ่งโปรแกรมได้ ครั้งล่ะ หลายๆโปรแกรม พร้อมๆกัน ในเครื่องเดียว

ทุกระบบหลายผู้ใช้ จำเป็นต้องมีวิธีการที่จะจำแนกแยกแยะ ผู้ใช้งานผู้ใดผู้หนึ่ง ออกจะคนอื่นๆ ในฟรีบีเอ้สดี (และในระบบ unix อื่นๆด้วยเช่นกัน) สิ่งนี้บรรลุได้โดย กำหนดว่า ผู้ใช้ ต้อง เข้าสู่ระบบ ก่อนที่จะสามารถวิ่งโปรแกรมใดใดได้ ผู้ใช้ทุกคนจะได้รับ ชื่อ (username) ที่ไม่ซ้ำกัน พร้อมกันนั้น ก็จะมีกุญแจลับจำเพาะตัว (หรือ ระหัสลับ (password) ที่รู้กันแต่ผู้เดียว) ฟรีบีเอ้สดี จะถามสองสิ่งนี้ ก่อนที่จะอนุญาตให้ใช้งาน และวิ่งโปรแกรมใดใดได้

ภายหลังจากที่ ฟรีบีเอ้สดี บู้ตเครื่อง และจบงานเริ่มต้นแล้ว มันก็จะนำเสนอท่านด้วย prompt และถามหาชื่อที่ถูกต้อง

login:

เพื่อเป็นการยกตัวอย่างในที่นี้ สมมติว่า ชื่อ ของท่านคือ taparow ก็ให้ท่าน กรอก taparow ไปที่ prompt นี้ แล้วตามด้วยการกดปุ่ม Enter ซึ่งท่านควรจะได้รับ การสนองตอบ ด้วย การบอกให้ท่านกรอก ระหัสลับ

login: taparow
Password:

ก็ให้ท่าน กรอก ระหัสลับ ของ taparow ไป และกัดปุ่ม Enterโดยที่ไม่ต้องกังวลว่าจะมีผู้อ่าน หรือ เห็น ระหัสลับ ของท่านได้ เพราะ มันจะไม่แสดงออกมา ทางหน้าจอภาพ ก็พอจะบอก ให้ท่าน สบายใจได้ในขณะนี้ว่า มันทำไปดังนั้น ด้วยเหตุผล เพื่อ ความปลอดภัย ของระบบ

ถ้าท่านใส่ระหัสลับได้ถูกต้อง ท่านสมควรได้รับการนำเข้าสู่ ระบบปฏิบัติการ FreeBSD และ พร้อมที่จะ ทดลองใช้ คำสั่งต่างๆประดามีได้ ตามปราถนา

ท่านควรจะเห็น MOTD หรือ ข่าวประจำวัน ตามด้วย prompt (อาจจะเป็นอักขระ # $ หรือ % ตามแต่กรณี) ซึ่งบ่งบอกว่า ท่าน ได้เข้าสู่ระบบปฏิบัติการ FreeBSD เรียบร้อยแล้ว

การทำงานหลาย Consoles
การใช้งานโปรแกรม unix ใน console เดียวนั้นก็ดีอยู่หรอก แต่ ฟรีบีเอ้สดี นั้น สามารถที่จะ วิ่งได้ หลายๆโปรแกรม พร้อมๆกัน การมี console เดียวขณะที่ สามารถ สั่งงาน ได้อีกนั้น ดูจะเป็น การสูญเปล่าไป ในเมื่อระบบปฏิบัติการ เช่น FreeBSD นั้น สามารถวิ่ง ได้หลายๆโปรแกรม พร้อมๆกัน และ นี่เอง ที่ ``virtual consoles'' สามารถช่วยได้มาก

FreeBSD นั้นสามารถ ปรับแต่ง ให้ท่านใช้ virtual console ได้มากเท่าที่ต้องการได้ ท่านสามารถ กระโดด ไปมา ระหว่างแต่ละ console ได้โดยง่าย เพียงแค่ กดปุ่ม สองสามปุ่ม บนแป้นพิมพ์ของท่านเท่านั้น แต่ละ console ก็จะมี ช่องทางผลลัพธ์ เป็นของ ของตัวของตัวไป ฟรีบีเอ้สดี จะรับผิดชอบ ในการสลับ สับหลีก คู่แป้นพิมพ์จอภาพ สำหรับแต่ละ console ที่ท่านใช้งานได้อย่างถูกต้อง

ป่มพิเศษ ที่สงวนไว้สำหรับงานนี้โดย FreeBSD เป็นการจำเพาะ ท่านสามารถใช้ปุ่ม Alt F1, Alt F2 ถึง Alt F8 เพื่อสลับไปมา ระหว่าง virtual console ใน FreeBSD

ขณะที่ท่านกระโดดไปยังอีก console หนึ่ง FreeBSD เขารับผิดชอบ ในการเก็บ และนำกลับ ผลลัพธ์หน้าจอ ซึ่งผลก็คือทำให้ท่าน รู้สึก ว่ามี virtual คู่แป้นพิมพ์จอภาพ ได้หลายคู่ ที่ท่านสามารถ ใช้ สำหรับ เขียนคำสั่งให้ FreeBSD ทำงาน โปรแกรม ที่ท่านวิ่งในอีก console หนึ่ง ไม่หยุดทำงาน แม้ว่า console นั้นจะมองไม่เห็น มันยังทำงานอยู่ แม้ท่านจะสลับไปยัง console อื่นก็ตาม

แฟ้ม /etc/ttys
FreeBSD ได้รับการปรับให้ เริ่มต้นเมื่อเปิดเครื่อง สามารถมี 8 virtual consoles อันนี้ ไม่ใช่การติดตั้งกับตัวเครื่องมา แต่ ท่าน สามารถ ปรับ ระบบของท่าน เอาเองได้ ตามใจชอบว่า จะให้มี น้อย หรือ มาก เท่าไรก็ได้ จำนวน และ การกำหนดค่าต่างๆ ของ virtual consoles สามารถปรับ ได้จากแฟ้ม /etc/ttys

ท่านสามารถใช้แฟ้ม /etc/ttys ปรับ virtual consoles ของ FreeBSD ซึ่งแต่ละบรรทัด ที่ไม่ได้ comment ไว้ (บรรทัดที่ไม่ได้ขึ้นต้นด้วย #) มีการกำหนดค่าตั้งต้น สำหรับ terminal เดี่ยว หรือ virtual console แฟ้มที่ให้มากับระบบปฏิบัติการ FreeBSD นี้ ได้รับการปรับแต่ง ให้มี 9 virtual consoles และ ให้เริ่มทำงาน เพียง 8 อัน ก็ประดาบรรทัด ที่เริ่มต้นด้วย ttyv: นั่นเอง
# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
สำหรับ รายละเอียดของแต่ละ column ในแฟ้มนี้ รวมทั้ง options ต่างๆ ที่ท่านสามารถเลือก เพื่อกำหนดสิ่งต่างๆ ใน virtual console ได้เอง นั้น กรุณาอ่าน หน้าคู่มือ ttys(5)
หมายเหตุมะไฟ ตารางนี้ แต่ละบรรทัด มี ๕ สดมภ์ แต่ละ สดมภ์ คั่นด้วย space ถ้าสดมภ์ใดมี space อยู่ให้ใช้ " ปิดหัว ท้าย สดมภ์นั้น

Single User Mode Console
ความลับของ single user mode console ท่านสามารถหาอ่านดูได้จากเรื่องของ init process ที่จะนำเสนอต่อไป สิ่งที่สำคัญที่จะทราบไว้ก็คือ ท่านสามารถมี และใช้ console ได้เพียง 1 console เท่านั้น เมื่อท่านวิ่ง FreeBSD ใน single user mode ไม่มี virtual console ให้ท่านใช้ การกำหนด หรือ ปรับแต่ง console ใน single user mode สามารถกระทำได้ผ่านแฟ้ม /etc/ttys เช่นกัน โดยมองหาบรรทัดที่เริ่มด้วยคำ console
# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secure

อย่างที่บอกไว้ตรง comment ของรายละเอียดข้างบนของ console ถ้าเราเปลี่ยนจาก secure เป็น insecure เมื่อ FreeBSD เข้าสู่ single user mode มันจะถามหา ระหัสลับ ของ root ซึ่งจะทำให้ท่านวุ่นวายเอาได้

เรื่องราวที่เหลือ ของบทนี้ ผมขอผ่านไป ไม่นำเสนอเพราะเห็นว่า ไม่ค่อยได้ใช้งานมากนัก ในครั้งต่อไป ของ ไกลปืนเที่ยง ถ้าเรื่องที่เกี่ยวข้องกับ handbook ก็จะบอกไว้ แต่ต้น ดังที่ท่านเห็นในตอนนี้ หวังว่าคงพอได้ สาระ บ้าง

View My Stats