以下の所を参考にさせて頂きました。
http://plamo.linet.gr.jp/wiki/index.php?diary%2FKojima%2F2014-04-07
http://wiki.gentoo.org/wiki/GRUB
http://www.linux-archive.org/gentoo-user/481167-mounting-root-partition-uuid-no-initrd-needed.html
http://lxr.linux.no/#linux+v3.8/init/do_mounts.c#L190
にゃんたろうは Disk identifier と いうのは 少なくとも 同じになる 事は まあ まれであろうと考えていましたが 計算機に 2個 の USB を 挿入した場合 以下の 様な 場合がありました。
# fdisk -l | grep "Disk identifier"
Disk identifier: 0xdba28bf3
Disk identifier: 0xc3072e18 /* USB メモリ */
Disk identifier: 0xc3072e18 /* USB メモリ */
# dmesg | grep usb
... /* メーカ とか 製品 番号 等は 異なっている */
[ 175.816675] usb 1-5: new high-speed USB device number 6 using ehci-pci
[ 175.945541] usb 1-5: New USB device found, idVendor=0718, idProduct=0688
[ 175.945546] usb 1-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 175.945549] usb 1-5: Product: USB Device
[ 175.945551] usb 1-5: Manufacturer: Imation
[ 175.945554] usb 1-5: SerialNumber: 070724C51F443627
...
[ 211.793336] usb 1-6: new high-speed USB device number 7 using ehci-pci
[ 211.921903] usb 1-6: New USB device found, idVendor=056e, idProduct=6007
[ 211.921907] usb 1-6: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 211.921910] usb 1-6: Product: MF-HSU2
[ 211.921912] usb 1-6: Manufacturer: ELECOM
[ 211.921915] usb 1-6: SerialNumber: 070824A0D137D151
...
# cat /var/log/messages
.... /* メーカ とか 製品 番号 等は 異なっている */
May 13 13:12:22 p6090j kernel: usb 1-5: New USB device found, \
idVendor=0718, idProduct=0688
May 13 13:12:22 p6090j kernel: usb 1-5: New USB device strings: \
Mfr=1, Product=2, SerialNumber=3
May 13 13:12:22 p6090j kernel: usb 1-5: Product: USB Device
May 13 13:12:22 p6090j kernel: usb 1-5: Manufacturer: Imation
May 13 13:12:22 p6090j kernel: usb 1-5: SerialNumber: 070724C51F443627
.....
May 13 13:12:58 p6090j kernel: usb 1-6: New USB device found, \
idVendor=056e, idProduct=6007
May 13 13:12:58 p6090j kernel: usb 1-6: New USB device strings: \
Mfr=1, Product=2, SerialNumber=3
May 13 13:12:58 p6090j kernel: usb 1-6: Product: MF-HSU2
May 13 13:12:58 p6090j kernel: usb 1-6: Manufacturer: ELECOM
May 13 13:12:58 p6090j kernel: usb 1-6: SerialNumber: 070824A0D137D151
...
# mkdir sdb2
# mkdir sdg2
# mount /dev/sdb2 sdb2
# mount /dev/sdg2 sdg2
# df | sed 2,5d
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb2 14615372 11819812 2053140 86% /root/sdb2
/dev/sdg2 14097432 3744660 9636656 28% /root/sdg2
# ls sdb2
bin/ cdrom/ etc/ lib/ media/ opt/ root/ sbin/ sys/ usr/
boot/ dev/ home/ lost+found/ mnt/ proc/ run/ srv/ tmp/ var/
# ls sdg2
P_Plamo_backup_cpio.gz isolinux/
# ls sdg2/isolinux/
System.map vmlinuz w-ver-03-OK-initrd.gz
System.map-3.12.5-p52-usb vmlinuz-3.12.5-p52-usb w-ver-04-OUT-initrd.gz
initrd.gz w-ver-01-OK-initrd.gz w-vv03-OK-initrd.gz
rootimg.squash w-ver-02-OK-initrd.gz
# umount sdg2
# umount sdb2
# mv sdb2/ sdb1
# mv sdg2 sdg1
# mount /dev/sdb1 sdb1/
# mount /dev/sdg1 sdg1/
# df | sed 2,5d
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sdb1 69776 5827 60346 9% /root/sdb1
/dev/sdg1 56369 5673 47785 11% /root/sdg1
# ls sdb1/boot/grub/
001_org-cp-grub.conf grub.conf minix_stage1_5 ufs2_stage1_5
device.map grubimg.xpm.gz reiserfs_stage1_5 vstafs_stage1_5
e2fs_stage1_5 iso9660_stage1_5 stage1 xfs_stage1_5
fat_stage1_5 jfs_stage1_5 stage2
ffs_stage1_5 menu.lst@ stage2_eltorito
# ls sdg1/boot/grub/
001_org-cp-grub.conf fat_stage1_5 memu.lst@ ufs2_stage1_5
002_try-grub.conf ffs_stage1_5 minix_stage1_5 vstafs_stage1_5
003_OK-grub.conf grub.conf reiserfs_stage1_5 xfs_stage1_5
004_OUT-grub.conf grubimg.xpm.gz stage1
device.map iso9660_stage1_5 stage2
e2fs_stage1_5 jfs_stage1_5 stage2_eltorito
# cat sdb1/boot/grub/grub.conf | head -15 | tail -7
title Plamo-5.2 (391359d1-2093-4ea7-ba5b-b29c334a2906) USB
root (hd0,1)
kernel /boot/vmlinuz root=PARTUUID=c3072e18-02 ro vt.default_utf8=0 vga16 unicon=eucjp rootdelay=12
title Plamo-4.7 (sdb1) 5 xw4600 Q9650 4CPU
root (hd2,0)
# cat sdg1/boot/grub/grub.conf | head -15 | tail -7
title Plalmo 5.2 (USB) ELECOM MF-HSU2 15.5 GB
root (hd0,1)
kernel /isolinux/vmlinuz rootdelay=12 ramdisk_size=6000 root=/dev/ram0 rw vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 init=/init
initrd /isolinux/initrd.gz
# umount sdb1
# umount sdg1
# fdisk -l /dev/sdb
Disk /dev/sdb: 16.0 GB, 16013852672 bytes, 31277056 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc3072e18
Device Boot Start End Blocks Id System
/dev/sdb1 * 14 144143 72065 83 Linux
/dev/sdb2 144144 29841083 14848470 83 Linux
/dev/sdb3 29841084 31275971 717444 82 Linux swap / Solaris
# fdisk -l /dev/sdg
Disk /dev/sdg: 15.5 GB, 15504900096 bytes, 30283008 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc3072e18
Device Boot Start End Blocks Id System
/dev/sdg1 * 43 116486 58222 83 Linux
/dev/sdg2 116487 28761194 14322354 83 Linux
/dev/sdg3 28761195 30282921 760863+ 82 Linux swap / Solaris
まあ こういう事です。
root=PARTUUID=c3072e18-02
に する事 で 少なくとも にゃんたろうが 生きている間は 同じ番号 が 生じる とは ♪おとみさん♪ 状態です。
良く考えれば ハードディスクの 入れ換えた時も hda hdb が 云々 なのでしょうが 通常滅多に ハードディスクの 入れ換えは 行わない ので 気にしていなかった が まあ USB の 場合は かなりの 確立で 発生 する 場合が 有る事を 頭の隅に 置いておく方が 良いようです。
以下は USB ディスク を 調べた メモ からの抜粋です。
# cat note-2014051* | grep "Disk identifier" Disk identifier: 0xc3072e18 Disk identifier: 0x12a92bb9 Disk identifier: 0xc3072e18 Disk identifier: 0x000d81aa Disk identifier: 0x5bbb80c4 Disk identifier: 0x00000000 Disk identifier: 0xbe9aef20 Disk identifier: 0xc3072e18
にゃんたろう 拝!
2014年 3月 15日 土曜日 23:18:51 JST 作成