wd's blog

บันทึกแก้ไข sid บูตไม่ขึ้น

เนื่องจากปัญหา initramfs ไม่ยอมสร้างไฟล์ initrd.img ทำให้ dpkg ค้างบูตไม่ได้

บูตด้วยแผ่นติดตั้ง netinst ของ lenny ทำตามขั้นตอนไปเรื่อย ๆ จนถึงขั้นแบ่งพาร์ติชั่นดิสก์ แล้วจึงออกสู่เชลล์ busybox

เนื่องจากเชลล์ busybox ไม่ฉลาดเหมือน bash จึงต้องใส่พารามิเตอร์ตามลำดับ

# mount /dev/hda5 /mnt -t ext3
# mount sysfs /mnt/sys -t sysfs
# mount proc /mnt/proc -t proc
# mount tmpfs /mnt/tmp -t tmpfs
# chroot /mnt /bin/bash

ตอนนี้เราย้าย root มาที่เครื่องที่ต้องการซ่อมแล้ว (ขอแทนเครื่องหมายพร้อมด้วย $#)

หากต้องมีการแก้ไขเนื้อไฟล์

$# TERM=linux
$# vi XXXX.XXX

แก้ไขงานตามความจำเป็น

$# dpkg --reconfigure -a
$# aptitude -f install
$# exit

เสร็จแล้ว บูตเครื่องใหม่ได้เลย

# reboot

ตัวอย่างการติดตั้งสแกนเนอร์ Epson รุ่น CX5500

ถึงแม้ Epson จะมีไดรเวอร์มาให้ แต่ก็เป็นแพกเกจแบบ rpm ของ RedHat ทำให้การติดตั้งยังไม่สะดวกเท่าที่ควร

หน้าเว็บอยู่ที่ Avasys official Epson drivers ซึ่งถ้านำมาแปลงด้วยโปรแกรม alien ก็อาจจะได้ แต่ที่ผมยกมาเป็นตัวอย่าง จะเป็นการปรุงด้วยเดเบียนโดยตรง

ตามตัวอย่าง ผมใช้เดเบียนรุ่น sid ซึ่งใช้ gcc-4.3 นะครับ

ติดตั้งแพกเกจสำหรับปรุง deb และ xsane

$ sudo aptitude install devscripts libsane-dev xsane

เอาไฟล์ซอร์สและแพตช์มาคอมไพล์

$ wget http://lx1.avasys.jp/iscan/2.11.0/iscan_2.11.0-1.tar.gz
$ wget http://aur.archlinux.org/packages/iscan/iscan/iscan-gcc43-fix.patch
$ tar zvxf iscan_2.11.0-1.tar.gz
$ cd iscan-2.11.0/
$ patch -Np0 -i ../iscan-gcc43-fix.patch
$ debuild -us -uc

จะได้ไฟล์ .deb ต้องติดตั้งด้วยพารามิเตอร์เพิ่มเติม เพราะแพกเกจนี้ ขัดกับแพกเกจ libsane-extras

Python Tutorial (เรียนรู้ไพธอน)

หมายเหตุจาก webmaster: คุณ wd เขียนบทความชุดนี้ไว้ได้เกือบแปดเดือนแล้วครับ แต่ webmaster ตรวจไม่เสร็จสักที ตอนนี้ก็ยังไม่เสร็จ แต่เห็นว่าดองไว้นานก็น่าเสียดาย จึงเผยแพร่ทั้งที่ยังตรวจไม่เสร็จไปก่อน

เอามาจาก Python Tutorial

ตั้งใจเขียนให้อ่านสนุก ๆ นะครับ อย่าจริงจัง

ทำแผ่นบูตฉุกเฉิน

ปัญหาคือมีเครื่องลูกข่ายที่เป็นวินโดวส์ติดไวรัส และไม่ได้ลงซอฟต์แวร์ป้องกันไวรัสไว้ (เนื่องจากทอนกำลังเครื่อง)

ทางแก้คือ ใช้แผ่นบูตเดเบียนที่ลงแพกเกจ clamav เพื่อนำไปสแกนและลบไฟล์ไวรัสทิ้ง

ติดตั้งแพกเกจในการสร้างแผ่นบูตคือ live-helper

$ sudo aptitude install live-helper

สร้างไดเรกทอรีสำหรับงานนี้

$ mkdir ~/debian-live
$ cd ~/debian-live

เราทำแผ่นบูตฉุกเฉิน ต้องใช้แพกเกจ rescue

$ lh_config -p rescue

หากต้องการเปลี่ยนแปลงค่าปริยาย สามารถเปลี่ยนได้จากไฟล์ config/bootstrap

$ vi config/bootstrap

เช่น

...
# $LH_DISTRIBUTION: select distribution to use
# (Default: lenny)
LH_DISTRIBUTION="sid"
...
# $LH_SECTIONS: select section(s) to use
# (Default: main)
LH_SECTIONS="main contrib non-free"
...

ปรุงไฟล์ iso

$ sudo lh_build

เกร็ดคำสั่ง find

(ศึกษาเพราะต้องการเอาไฟล์ในคลังของ apt-proxy เฉพาะไฟล์ใหม่ ๆ เลยต้องการลบไฟล์เก่า ๆ ทิ้ง เพื่อให้ขนาดคลังแพ็กเกจเล็กลง)

เริ่มเลยครับ

ต้องการค้นหาไฟล์ชื่อ *Doc*

$ find /PATH/TO/FILE -name '*Doc*'

ค้นหาและลบไฟล์

$ find /PATH/TO/FILE -name '*Doc*' -exec rm {} \;

ค้นหาไฟล์ที่เก่ากว่า 5 วันลงไป

$ find /PATH/TO/FILE -mtime +5

ค้นหาไฟล์เก่าตั้งแต่ 5 วันขึ้นมา

$ find /PATH/TO/FILE -mtime -5

ค้นหาไฟล์เก่ากว่า 1 ปีลงไป และลบไฟล์เหล่านั้นทิ้ง

$ find /PATH/TO/FILE -mtime +365 -exec rm {} \;

*** ใช้ด้วยความระมัดระวังนะครับ ***

วันนี้แค่นี้ก่อนครับ

อ้างอิง

lenny: แก้ปัญหา waiting for root file system

ช่วงนี้ติดตั้งเครื่องหลายเครื่องด้วย lenny พบปัญหาบูตไม่ขึ้นด้วยข้อความว่า "waiting for root file system" ค้นกูเกิลดูพบว่าเป็นปัญหาของแพกเกจ initramfs (เป็นทั้งรุ่น 0.92a และ 0.92b) ที่ตีความฮาร์ดดิสก์เป็น sda

ทางแก้มีหลายทาง เช่น กำหนดชื่อ (label) ให้พาร์ทิชัน หรือใช้ uuid แต่รู้สึกว่ายุ่งยากไปหน่อย เพราะเคยมึนกับเรื่อง uuid มาทีนึงแล้ว เลยคิดว่าลองกลับไปคบกับ yaird แทน ซึ่งดูจะมีปัญหานี้น้อยกว่า

ตอนนี้ yaird บน lenny ไม่รู้หายไปไหน ก็เลยต้องไปดาวน์โหลดของ sid มาแทน เวลาติดตั้งด้วยคำสั่ง dpkg -i เขาจะแจ้งว่าติดดีเพนเดนซีที่แพกเกจไหนบ้าง ก็ลงไปตามนั้นจนจบ

มีต้องแก้ไฟล์นิดนึงคือไฟล์ kernel-img.conf ให้มาใช้ของ yaird

$ sudo vi /etc/kernel-img.conf
...
#ramdisk = /usr/sbin/mkinitrd /usr/sbin/mkinitramfs
ramdisk = /usr/sbin/mkinitrd.yaird

ย้ายจาก samba ไป nfs สำหรับ dosemu (ro)

การใช้งาน samba กับ dosemu พบว่าตั้งแต่ samba รุ่น 3.0.27 เป็นต้นมา สำหรับแชร์ที่เป็นแบบอ่านเขียน มีการล็อคเรคอร์ดที่ดีขึ้น ด้วยพารามิเตอร์ directio

แต่สำหรับแชร์ที่เป็นแบบอ่านอย่างเดียว พบว่ามีปัญหามาก เพราะถึงแม้ว่าเราจะกำหนดให้เป็นแบบอ่านอย่างเดียว แต่เขาไม่ยอมให้เปิดไฟล์ซ้ำ

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

ที่เซิร์ฟเวอร์

ติดตั้ง

# aptitude install nfs-common nfs-kernel-server

ทำการแชร์ สมมุติว่าจะแชร์ไดเรกทอรีชื่อ /samba/app ให้เป็นแบบอ่านอย่างเดียว โดยให้ทุกเครื่องในวงภายในคือ 192.168.*.* สามารถใช้งานได้

# vi /etc/exports

บันทึกการติดตั้งเซิร์ฟเวอร์เดเบียน etch all-in-one แบบลูกทุ่ง

ควรสงสัยไว้ก่อนว่า ข้อเขียนนี้ต้องมีที่ผิดพลาดแน่นอน หากจะทำตาม ควรมีความรู้เรื่องลินุกซ์พอควรที่จะแก้ปัญหาที่เกิดจากการผิดพลาดในข้อเขียนได้

  • เป็นการบันทึกขั้นตอนการทำงานในระหว่างการเปลี่ยนฮาร์ดดิสก์ของเซิร์ฟเวอร์
  • บางรายการใช้แพกเกจที่มีความสามารถมากไป เรียกว่าขี่ช้างจับตั๊กแตน (บางรายการก็น้อยไป)
  • บางรายการมีแพกเกจอยู่แล้ว แต่ดันมาเขียนสคริปต์เอง (อ้างว่าเพื่อเพิ่มความยืดหยุ่น)
  • เรื่องความปลอดภัยจัดอยู่ในระดับ "ตายดาบหน้า"
  • ทั้งหมดมาจากเพราะภาษาอังกฤษไม่ดีครับ อ่านเอกสารไม่ค่อยเข้าใจ เลยทำเท่าที่ทำได้ครับ

จะติดตั้งเซิร์ฟเวอร์แบบ all-in-one สำหรับใช้ในหน่วยงานเล็ก ๆ โดย

bash: คัดลอกข้อมูลผู้ใช้ไปเครื่องใหม่

ต้องการโอนข้อมูลผู้ใช้ไปเครื่องใหม่

ถ้าเราคัดลอกไฟล์ /etc/passwd /etc/shadow /etc/group /etc/gshadow ไปทับเครื่องใหม่แบบตรง ๆ จะเกิดปัญหาเรื่องผู้ใช้ของระบบจะติดไปด้วย ซึ่งอาจมีค่า UID และ GID ที่ไม่ตรงกัน

ค้นกูเกิลได้วิธีการจากที่นี่ครับ Move or migrate user accounts from old Linux server to a new Linux server

เขาใช้หลักการที่ว่า UID ของผู้ใช้ทั่วไป จะมีค่ามากกว่า 1000 (ของ RedHat คือ 500) และใช้ awk เป็นตัวกรอง

ใช้ xterm กับงานภาษาไทย

เทอร์มินัลของ GNOME ดือ gnome-terminal ยังใช้งานภาษาไทยกับ vim ได้ไม่ดีนัก คือการเลื่อนเคอร์เซอร์ไม่ถูกตำแหน่ง และการคัดลอกข้อความด้วยเมาส์ก็ยังคัดลอกแบบผิด ๆ

การนี้ XTerm ใช้งานได้ดีกว่า แต่หน้าตาโบราณไปหน่อย และสีอักษรบนพื้นดำดูยากสักนิด เลยทดลองปรับแต่งดูครับ

สำหรับเดเบียนติดตั้งด้วย

$ sudo aptitude install xterm xfonts-thai xfonts-thai-nectec \
xfonts-thai-poonlap xfonts-thai-vor

สำหรับผม ปรับแต่งให้เป็นพื้นขาว เลียนแบบ gnome-terminal และปรับแต่งตัวหนังสือให้ใหญ่ขึ้น และสีเข้มขึ้นเล็กน้อย

$ vi ~/.Xdefaults
Syndicate content