在我的工作站启动后,有时 Linux 中同一硬盘的名称会从 更改为/dev/sdg/
我该如何修复这个问题,例如,/dev/sdi/
使 UUID 与名称完全一致地安装?/dev/sda
问题来自于从原始文件创建虚拟机:
VBoxManage internalcommands createrawvmdk -filename ~/.VirtualBox/win7.vmdk -rawdisk /dev/sdg -partitions 2,3 -mbr ~/.VirtualBox/FAKE.mbr -relative
如果现在名称/dev/sdg
更改为/dev/sdi
我的虚拟机将无法启动......
答案1
使用 /dev/disk/by-uuid/someUUID 而不是 /dev/sdaXN
您可以使用 UUID 来设备/dev
文件系统中的符号链接:
$ ls -l /dev/disk/by-uuid/fc48808f-8f06-47fc-a1fe-5d08ee9e0a40
lrwxr[...] 14:15 /dev/disk/by-uuid/fc48808f-8f06-47fc-a1fe-5d08ee9e0a40 -> ../../sdd1
该链接可以像
... -rawdisk /dev/disk/by-uuid/fc48808f-8f06-47fc-a1fe-5d08ee9e0a40 ...
除了 UUID,标签也可以以相同的方式使用 - 例如,标签“数据“:
$ ls -l /dev/disk/by-label/data
lrwxrwxrwx 1 root root 10 Sep 4 14:15 /dev/disk/by-label/data -> ../../sde1
尝试
ls -l /dev/disk/by-uuid
ls -l /dev/disk/by-label
独立于此,UUID
也可以在 中使用 或 标签/etc/fstab
,代替/dev/sdXN
设备文件。(使用 列出标签sudo lsblk -o NAME,LABEL
)
答案2
答案是使用 udev 规则:
KERNEL=="sd[a-z][0-9]", SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}=="Crucial_CT480M50", SYMLINK+="bootdevice%n"
KERNEL=="sd?", SUBSYSTEM=="block", SUBSYSTEMS=="scsi", ATTRS{model}=="Crucial_CT480M50", SYMLINK+="bootdevice"
在文件 /etc/udev/rules.d/mybootdevice.rules 中
(如何调整属性以适合您的设备,请参见此处:这里)
然后重新启动udev:
sudo udevadm trigger
然后会有一个 /dev/bootdevice
每次启动后都会持续存在!