สมมุติว่า mirror เราชื่อ www.example.com ได้ติดตั้ง apt-proxy สำหรับอูบุนตูไว้เรียบร้อยแล้ว
(เวลาใช้งานจาก apt-proxy ต้องระบุพอร์ตเป็น 9999)
และสมมุติว่าแบ่งพาร์ติชั่นไว้ดังนี้
/dev/hda1 = / เป็นเดเบียน Etch /dev/hda2 = ว่าง ขนาด 20G เตรียมสำหรับ Feisty /dev/hda3 = Extended /dev/hda5 = swap ขนาด 512M
เราจะติดตั้งระบบใหม่บน /dev/hda2 ให้มีขนาด 20G เพื่อใช้เป็น / (root) ของระบบใหม่
สร้างระบบไฟล์เป็น ext3
# mkfs.ext3 /dev/hda2
สร้างจุดเมานต์ให้ /dev/hda2 สมมุติว่าชื่อ /mnt/disk
# mkdir -p /mnt/disk
ก่อนจะติดตั้ง ต้องเมานต์ /dev/hda2 ลงบน /mnt/disk ก่อน
# mount /dev/hda2 /mnt/disk
ติดตั้ง debootstrap บน Etch
# aptitude install debootstrap
เนื่องจากแพกเกจ debootstrap ของ Etch ไม่มีสคริปต์สำหรับอูบุนตู Feisty
เราจึงต้องไปดาว์นโหลดแพกเกจ debootstrap ของ Feisty เอง เพื่อมาแตกเอาไฟล์สคริปต์นี้
# wget http://fr.archive.ubuntu.com/ubuntu/pool/main/d/debootstrap/debootstrap_0.3.3.2ubuntu3_all.deb
ถึงวันนี้ มิเรอร์ของไทย mirror.in.th ยังไม่อัปเดตครับ
แตกด้วย Archive Manager เฉพาะไฟล์ที่ชื่อ feisty แล้วนำไปใส่ไว้ใน /usr/lib/debootstrap/scripts
# cp feisty /usr/lib/debootstrap/scripts
เริ่มติดตั้ง Feisty บน /mnt/disk ผ่าน debootstrap
# debootstrap feisty /mnt/disk http://www.example.com:9999/debian
เมื่อติดตั้งเสร็จแล้ว จำเป็นต้องคัดลอกไฟล์ที่จำเป็นในการเริ่มต้นระบบไปยัง /mnt/disk และทำการแก้ไขตามจำเป็น
# cp /etc/hosts /mnt/disk/etc ; vi /mnt/disk/etc/hosts
# cp /etc/networks/interface /mnt/disk/etc/networks ; vi /mnt/disk/etc/networks/interface
# 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/hda1 เป็น /dev/hda2
แก้ไขไฟล์ /etc/apt/sources.list
เป็นดังนี้
# vi /mnt/disk/etc/apt/sources.list
deb http://www.example.com:9999/ubuntu feisty main restricted universe multiverse deb-src http://www.example.com:9999/ubuntu feisty main restricted universe multiverse
สร้างสภาพแวดล้อม เพื่อใช้ในการ 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
เริ่มการติดตั้งแพกเกจที่จำเป็นและปรับตั้งระบบ
(CHROOT)# mount -a
(CHROOT)# aptitude update
(CHROOT)# aptitude install locales console-data localeconf
ปรับแต่ง locale ให้ด้วย
(CHROOT)# locale-def en_US.UTF-8
(CHROOT)# dpkg-reconfigure locales localeconf
ติดตั้งแพกเกจจำเป็นที่เหลือ
(CHROOT)# aptitude install initrd-tools usbutils pciutils bzip2 ssh grub udev yaird ubuntu-minimal ubuntu-standard
( ถ้าต้องการระบบ X-Window ด้วย
(CHROOT)# aptitude install ubuntu-desktop xorg gdm gnome
)
ติดตั้งเคอร์เนล
(CHROOT)# aptitude install linux-image-686
อย่าลืมตั้งรหัสผ่านให้ root
(CHROOT)# passwd
ปรับตั้งระบบใหม่ทั้งหมด
(CHROOT)# dpkg-reconfigure -a
ตอบค่าปริยายทั้งหมด ยกเว้นส่วนของ locales, tzconfig, dash ให้ตอบตามต้องการ
ออกจากสภาพ chroot
(CHROOT)# 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 Ubuntu Feisty - Experiment, kernel 2.6.20-15-generic root (hd0,1) kernel /vmlinuz root=/dev/hda2 ro initrd /initrd.img savedefault ...
เรียบร้อยแล้ว รีบูตใหม่ได้เลย
# reboot
จะได้อูบุนตู Feisty ที่ติดตั้งผ่าน debootstrap
หมายเหตุ
$ sudo dpkg-reconfigure -a
$ sudo aptitude update && sudo aptitude dist-upgrade