我遇到了一个奇怪的问题。找不到任何解决方案。
使用 Ubuntu 12.04。我的硬盘驱动器指定为 sda。如果我插入任何 USB 驱动器,它都会自动指定为 sdb。没问题。
但重启后,USB 驱动器被指定为 sda,而硬盘驱动器显示为 sdb。所以我的 fstab 挂载点在启动时显示错误。
我想制作任何 USB 驱动器,将其连接到硬盘驱动器 - 就像在 Windows 中通常是这样。
请大家帮帮我。我现在很挣扎。
提前感谢您。
赖汗
答案1
我建议你做两件事,
- 在 your 中使用
UUID
s 代替,以免弄乱。/dev/sd*
fstab
- 让您开始使用,
udev
以便可以使您的拇指驱动器显示为/dev/whatever
第 1 节。
确保列出的所有设备fstab
都已插入系统。等待几秒钟,然后输入
ls -l /dev/disk/by-uuid
这会给你如下结果:总计 0
lrwxrwxrwx 1 root root 10 Sep 24 20:19 4e36d61c-e6f4-4a1a-b760-45ee5a76e141 -> ../../sdc2
lrwxrwxrwx 1 root root 10 Sep 24 20:19 52a04f5d-2576-48d1-8340-544cc24e0fcd -> ../../sdc3
lrwxrwxrwx 1 root root 10 Sep 24 20:19 55a1d85d-e5f5-416e-adf7-3aed3e6309f1 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Sep 24 20:19 5c8c3b19-5550-4411-8fc3-692aa94bb4af -> ../../dm-1
lrwxrwxrwx 1 root root 10 Sep 24 20:19 8bfea793-5cb2-480c-a4e3-2b3c331463bb -> ../../sdb3
lrwxrwxrwx 1 root root 10 Sep 24 20:19 a369bc5e-3bf0-454b-b04d-2936e343e959 -> ../../dm-0
lrwxrwxrwx 1 root root 10 Sep 24 20:19 e57e2838-2c56-43c3-b4b8-de0743c67181 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Sep 24 20:19 f7772f0f-19d7-4ced-b0a0-b543e4bd54fe -> ../../dm-2
现在查看你的 中有什么fstab
。在任何地方,你都有类似的东西,/dev/sdc1
我希望你用类似 的东西来替换它UUID=55a1d85d-e5f5-416e-adf7-3aed3e6309f1
。这将告诉mount
使用 来UUID
识别设备,而不是 下的位置/dev
。它们UUID
是唯一的,并且会在文件系统的整个生命周期内持续存在。
第 2 节。
udev
是负责/dev
在 Ubuntu 中放置块设备(和其他设备)的服务。您实际上可以编写自己的规则,udev
指示它以一致的方式在 下创建符号链接/dev
。其工作方式udev
是,每次连接设备时,它都会扫描一长串规则并执行匹配的任何规则指定的操作。匹配是通过检查设备的一系列参数来完成的,例如,UUID
它插入的端口、PCI 地址等。因此,您可以通过文件系统识别您的拇指驱动器UUID
,并制定规则将其映射到/dev/myThumbDrive
您/dev/myThumbDrive
通常使用的任何地方/dev/sda1
(例如)。
您可以通过输入以下内容找到用于识别驱动器的属性列表
udevadm info -n /dev/sde --attribute-walk
looking at device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0/6:0:0:0/block/sde/sde1':
KERNEL=="sde1"
SUBSYSTEM=="block"
DRIVER==""
ATTR{partition}=="1"
ATTR{start}=="1"
ATTR{size}=="24242084"
ATTR{ro}=="0"
...
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0/6:0:0:0/block/sde':
KERNELS=="sde"
SUBSYSTEMS=="block"
DRIVERS==""
ATTRS{range}=="16"
ATTRS{ext_range}=="256"
ATTRS{removable}=="1"
ATTRS{ro}=="0"
ATTRS{size}=="31250432"
ATTRS{alignment_offset}=="0"
ATTRS{discard_alignment}=="0"
ATTRS{capability}=="51"
...
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0/6:0:0:0':
KERNELS=="6:0:0:0"
SUBSYSTEMS=="scsi"
DRIVERS=="sd"
ATTRS{device_blocked}=="0"
ATTRS{type}=="0"
ATTRS{scsi_level}=="3"
ATTRS{vendor}=="SanDisk "
ATTRS{model}=="Cruzer "
ATTRS{rev}=="1.00"
...
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6/target6:0:0':
....
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0/host6':
....
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1/8-1:1.0':
...
SUBSYSTEMS=="usb"
DRIVERS=="usb-storage"
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8/8-1':
....
ATTRS{idVendor}=="0781"
ATTRS{idProduct}=="5530"
....
ATTRS{manufacturer}=="SanDisk"
ATTRS{product}=="Cruzer"
ATTRS{serial}=="20043513610A15E24E49"
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0/usb8':
....
looking at parent device '/devices/pci0000:00/0000:00:15.2/0000:05:00.0':
....
looking at parent device '/devices/pci0000:00/0000:00:15.2':
....
looking at parent device '/devices/pci0000:00':
....
然后您可以创建一个如下所示的规则:
KERNEL=="sd*", SUBSYSTEMS=="scsi", ATTRS{model}=="USB 2.0 Storage Device", SYMLINK+="myThumbDrive%n"
因此/dev/myThumbDrive1
可以代替/dev/sd[a-z]1
替代方法
对我来说,输入 UUID 太多了。也许这对你来说会更容易一些。