![从 USB 启动时,我应该在 fstab 中使用 /dev/sda 还是 /dev/sdb?](https://linux22.com/image/139749/%E4%BB%8E%20USB%20%E5%90%AF%E5%8A%A8%E6%97%B6%EF%BC%8C%E6%88%91%E5%BA%94%E8%AF%A5%E5%9C%A8%20fstab%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20%2Fdev%2Fsda%20%E8%BF%98%E6%98%AF%20%2Fdev%2Fsdb%EF%BC%9F.png)
我正在从头开始构建 Linux 以放置在 USB 驱动器上,但不知道 Linux 是否总是调用从 /dev/sda 启动的驱动器。
我的系统中有两个磁盘,我的 SSD(在 Arch 安装中称为 /dev/sda)和我的 USB 驱动器(称为 /dev/sdb)。
我的 /etc/fstab 文件应该是这样的:
# <device> <dir> <type> <options> <dump> <fsck>
/dev/sda1 / ext4 noatime 0 1
/dev/sda2 none swap defaults 0 0
/dev/sda3 /home ext4 noatime 0 2
或类似的东西:
# <device> <dir> <type> <options> <dump> <fsck>
/dev/sdb1 / ext4 noatime 0 1
/dev/sdb2 none swap defaults 0 0
/dev/sdb3 /home ext4 noatime 0 2
答案1
您不应该使用sda
或sdb
。虽然在实践中,内部磁盘很可能会首先被识别并成为sda
,但您不确定。您也可能遇到过带有两个内置磁盘的计算机,那么sdb
就会出现错误。
要识别您的 USB 驱动器,请使用 UUID 或您要使用的分区的标签。会是这样的
/dev/disk/by-uuid/12345678-1234-1234-1234-123456789abc
或者
/dev/disk/by-label/usb-drive
UUID是一个随机值,它应该是uniq的。如果您使用标签,请确保使用唯一名称。
答案2
在一般情况下,它不会。
更喜欢这样的东西:
UUID=0a3407de-014b-458b-b5c1-848e92a327a3 / ext4 defaults
https://wiki.archlinux.org/index.php/fstab#File_system_UUIDs
如果您从 Linux 文本控制台安装...我可能建议安装gpm
,这样您就可以使用鼠标进行“复制和粘贴”:-)。
答案3
我在两个 120gb ssd 上使用 ZFS 镜像安装了一个新系统(ubuntu 22.04 LTS),并且使用/dev/sda1
/boot/efi
in/etc/fstab
节省了我大量的配置时间。当你拉出模拟损坏的两个磁盘之一时,如果我使用 uuid 而不是/sda1
它只会启动一个磁盘,第二个磁盘将无法启动,因为它具有不同的 uuid。
确实sd
,字母是可以改变的,sda将是主板和操作系统最先识别的磁盘,而Linux并不是掷骰子来决定先识别哪个磁盘,它会遵循与主板相关的sata顺序主板上的SATA 编号。如果您在 SATA1 和 SATA2 上连接系统驱动器,则镜像驱动器将始终用于sda
SATA1 和sdb
SATA2。如果sda
坏了,当你把它拔出来时,之前sdb
的就是现在sda
,它会正常启动。
我通常在 SATA 电缆的两端标上字母,A
B
C
以便与主板 SATA 序列号相匹配,这样您在使用磁盘时就不会弄乱错误的连接。
概括:
- 我建议对除以下之外的所有内容都使用 UUID
/boot/efi
- 我建议
/dev/sda1
使用/boot/efi