Suchart.Blog –> ITupstart.com

มิถุนายน 19, 2008

UUID on Ubuntu Linux 8.04

Filed under: Linux,Ubuntu — suchart @ 1:16 am

เดิมนั้นโน้ตบุ๊คผมมีทั้ง Windows XP และ Ubuntu  ผมใช้วิธีการ dual boot โดยใช้การติดตั้ง grub ใน boot sector ของ root partition (/dev/sda6) แล้วใช้คำสั่ง

# dd if=/dev/sda6 of=ubuntu.bin bs=512 count=1

แล้ว copy ubuntu.bin ไปใว้ใน C:\

แก้ boot.ini ประมาณนี้

[boot loader]
timeout=9
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=”Windows XP Media Center Edition” /noexecute=optin /fastdetect
C:\ubuntu.bin=”Ubuntu Linux 8.04″

ต่อมาผมเปลี่ยน Harddisk ซึ่งเป็นแบบ SATA จาก 120 G เป็น 250 G ผมใช้วิธีการ clonning บน Windows โดยใช้ Acronis TrueImage Home สามารถโคลนนิ่งได้ไม่มีปัญหาอะไร แต่ไม่สามารถบู๊ตเข้า Ubuntu Linux ได้ เพราะ boot sector เปลี่ยนไปแล้ว

ผมเลยใช้ sysresccd ที่ได้ทำให้บู๊ตผ่าน usb-stick ไว้แล้ว boot เข้าไปใน Ubuntu Linux (สามารถใช้แผ่น Ubuntu cd ก็ได้ แต่ผมชอบ sysresccd ใน usb มันโหลดเร็วดี) แล้วติดตั้ง grub ใหม่ โดยใช้คำสั่ง

# grub-install /dev/sda6

แล้ว

# dd if=/dev/sda6 of=ubuntu.bin bs=512 count=1

แล้ว copy ubuntu.bin ไปใว้ใน C:\ ใหม่อีกครั้ง

ก็จะสามารถบู๊ตได้ตามปกติ

ใน Ubuntu ไฟล์ /etc/fstab จะใช้ UUID แทน device file ของ root partition ตัวอย่างเครื่องของผมเป็นดังนี้

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0

# /dev/sda6
UUID=1212e5b0-c9e5-4072-a077-01a35080419b /               ext3    relatime,errors=remount-ro 0       1
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0

ข้อดีของ UUID ก็คือ มันจะคงที่ ไม่เปลี่ยนเหมือน harddisk device file เช่น harddisk ของผมเดิมเป็น /dev/sda พอถอดออกมาเสียบผ่าน usb ก็จะเป็น /dev/sdb หรืออื่นๆ ไป ดังนั้นถ้าใช้ UUID แล้ว harddisk ตัวเก่าของผมมันก็จะสามารถบู๊ต Linux (ไม่ใช่ Windows ) ผ่าน usb จากเครื่องที่สามารถบู๊ตจาก usb ได้  แหม…แหล่มเลย!

ผมเลยลองเลือกจาก bios ให้ boot จาก usb harddisk ซึ่งเป็นตัวเก่าของผม ปรากฎว่ามันยังคงไปบู๊ต Ubuntu Linux จาก harddisk ตัวใหม่ในเครื่องอยู่ ทั้งนี้ก็เพราะว่ามัน clonning มา ดังนั้น UUID มันเลยเหมือนกัน ผมเลยต้องแก้ UUID ในตัวใหม่ ใช้คำสั่ง

# uuidgen | xargs tune2fs /dev/sda6 -U

แล้วตรวจสอบค่า UUID ใหม่ ใช้คำสั่ง

# vol_id /dev/sda6
ID_FS_USAGE=filesystem
ID_FS_TYPE=ext3
ID_FS_VERSION=1.0
ID_FS_UUID=03b62130-795e-44f3-977a-28412adef5e6
ID_FS_UUID_ENC=03b62130-795e-44f3-977a-28412adef5e6
ID_FS_LABEL=
ID_FS_LABEL_ENC=
ID_FS_LABEL_SAFE=

แล้วก็ตามไป แก้ไข /etc/fstab และ /boot/grub/menu.lst เป็น UUID ใหม่ที่ได้ เป็นอันเรียบร้อย

Advertisements

1 ความเห็น »

  1. /user
    /root
    /boot
    /hom
    คำสั่งเหล่านี้หมายความว่าอย่างไรเหรอครับ

    ความเห็น โดย Smit — กันยายน 8, 2008 @ 9:48 am | ตอบกลับ


RSS feed for comments on this post. TrackBack URI

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

บลอกที่ WordPress.com .

%d bloggers like this: