ก่อนหน้าที่จะรู้จักคำสั่ง aptitude การติดตั้งแพกเกจด้วยคำสั่ง apt-get นั้น เมื่อเราลบแพกเกจที่เราไม่ต้องการออกแล้ว จะเหลือแพกเกจลูกที่ไม่ถูกใช้งานอยู่เป็นจำนวนมาก เวลาเราต้องการทำการทดลองใหม่ เราจะไม่ทราบแน่ชัดถึงผลกระทบของแพกเกจใหม่กับแพคเกจลูกของใหม่กับของเก่า
ดังนั้นเพื่อให้ระบบสะอาดเหมือนกับการติดตั้งใหม่ เราจึงควรแบ่งพาร์ติชั่นไว้สำหรับการทดลองนี้โดยเฉพาะ ทุกครั้งที่ต้องการการทดลองใหม่ ๆ เราจะติดตั้งเดเบียนใหม่ลงในพาร์ติชั่นนี้เลย ด้วย debootstrap
สมมุติว่า mirror เราชื่อ www.example.com
เครื่องเราชื่อ server1
และสมมุติว่าแบ่งพาร์ติชั่นไว้ดังนี้
/dev/hda1 = /boot ขนาด 100M /dev/hda2 = / ขนาด 10G เป็นระบบปัจจุบัน /dev/hda3 = Extended /dev/hda5 = swap ขนาด 512M
เราจะติดตั้งระบบใหม่บน /dev/hda6 ให้มีขนาด 20G เพื่อใช้เป็น / (root) ของระบบใหม่
สร้างพาร์ติชั่นใหม่ คือ /dev/hda6 ขนาด 20G
# fdisk /dev/hda
Command (m for help): <<<--- n Command action l logical (5 or over) p primary partition (1-4) <<<--- l First cylinder (XXXX-XXXXX, default XXXXX):<<<--- {Enter} Last cylinder or +size or +sizeM or +sizeK (XXXX-XXXXX, default XXXXX):<<<--- +20G . Command (m for help): <<<--- w
สร้างระบบไฟล์เป็น ext3
# mkfs.ext3 /dev/hda6
สร้างจุดเมานต์ให้ /dev/hda6 สมมุติว่าชื่อ /mnt/disk
# mkdir -p /mnt/disk
ก่อนจะติดตั้ง ต้องเมานต์ /dev/hda6 ลงบน /mnt/disk ก่อน
# mount /dev/hda6 /mnt/disk
ติดตั้ง etch บน /mnt/disk ผ่าน debootstrap
# debootstrap etch /mnt/disk http://www.example.com:9999/debian
เมื่อติดตั้งเสร็จแล้ว จำเป็นต้องคัดลอกไฟล์ที่จำเป็นในการเริ่มต้นระบบไปยัง /mnt/disk และทำการแก้ไขตามจำเป็น
# cp /etc/hosts /mnt/disk/etc ; vi /mnt/disk/etc/hosts
# cp /etc/network/interfaces /mnt/disk/etc/network ; vi /mnt/disk/etc/network/interfaces
# cp /etc/hostname /mnt/disk/etc ; vi /mnt/disk/etc/hostname
# cp /etc/apt/sources.list /mnt/disk/etc/apt ; vi /mnt/disk/etc/apt/sources.list
# cp /etc/fstab /mnt/disk/etc ; vi /mnt/disk/etc/fstab
ตรงไฟล์ /mnt/disk/etc/fstab อย่าลืมเปลี่ยน /dev/hda2 เป็น /dev/hda6
สร้างสภาพแวดล้อม เพื่อใช้ในการ chroot ไปยัง /mnt/disk
# mount -t proc none /mnt/disk/proc
# mount -o bind /dev /mnt/disk/dev
# mount -t sysfs /sys /mnt/disk/sys
chroot ไปยัง /mnt/disk
# chroot /mnt/disk /bin/bash
เริ่มการติดตั้งแพกเกจที่จำเป็นและปรับตั้งระบบ
server1:/# aptitude update
server1:/# aptitude install locales console-data
server1:/# dpkg-reconfigure locales
server1:/# aptitude install initrd-tools usbutils pciutils bzip2 ssh grub udev yaird ssh
( ถ้าต้องการระบบ X-Window ด้วย
server1:/# aptitude install xorg gdm gnome
)
ติดตั้งเคอร์เนล
server1:/# aptitude install linux-image-686
อย่าลืมตั้งรหัสผ่านให้ root
server1:/# passwd
กันเหนียวด้วยการปรับตั้งระบบใหม่ทั้งหมด
server1:/# dpkg-reconfigure -a
ตอบค่าปริยายทั้งหมด ยกเว้นส่วนของ locales, tzconfig, dash ให้ตอบตามต้องการ
ออกจากสภาพ chroot
server1:/# exit
ยกเลิกการเมานต์ที่ผ่านมา
# umount /mnt/disk/proc
# umount /mnt/disk/dev
# umount /mnt/disk/sys
# ldconfig
# sync
(ถ้ายกเลิกเมานต์ไม่ผ่าน ไม่เป็นไร ให้ผ่านไปก่อน)
ปรับตั้งการบูต
# vi /boot/grub/menu.lst
แก้ไขลำดับการบูต
แก้จาก default 0 เป็น default 2
... default 2 ...
เติมลำดับการบูตให้กับเดเบียนใหม่ที่เราเพิ่งติดตั้งเสร็จ โดยต่อท้ายจากของเก่า
... title Etch-Experiment, kernel 2.6.18-3-386 root (hd0,5) kernel /vmlinuz root=/dev/hda5 ro initrd /initrd.img savedefault ...
เรียบร้อยแล้ว รีบูตใหม่ได้เลย
# reboot
ระบบใหม่จะเป็นเดเบียน Etch ใหม่แบบสะอาด ๆ
เมื่อจะทำการทดลองระบบใหม่ ถ้าจำเป็นต้องลงใหม่ก็ทำเหมือนเดิมครับ