每次重新启动后磁盘挂载点不一致。在 fstab 中使用 UUID

每次重新启动后磁盘挂载点不一致。在 fstab 中使用 UUID

我遇到一个问题,我可以使用 mount 命令手动挂载磁盘。然后我将磁盘添加到 fstab。重新启动后: sda1 指向正确的安装点 (/mnt/da),但其余的则不然。 请帮忙,我没有主意了。

服务器设置:

  • 软件 raid1 中的 2 个 NVME 驱动器
  • 10x 16tb 驱动器,无 raid,独立磁盘(必须在初始设置后从这些磁盘中删除 raid)
  • 操作系统:Debian 12
  • xfs 文件系统
  • 使用 UUID,我从 blkid 命令获取,将设备添加到 fstab

尝试过:

  • 手动挂载磁盘
  • 尝试一次安装一张磁盘
  • 尝试一次将一个磁盘添加到 fstab 并重新加载
  • 尝试将所有磁盘添加到 fstab 并重新加载

df-h

root@data7 ~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             63G     0   63G   0% /dev
tmpfs            13G  896K   13G   1% /run
/dev/md2        875G 1013M  829G   1% /
tmpfs            63G     0   63G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/md1        989M   66M  873M   7% /boot
/dev/sdb1        15T  104G   15T   1% /mnt/db
/dev/sdd1        15T  104G   15T   1% /mnt/dc
/dev/sda1        15T  104G   15T   1% /mnt/da
tmpfs            13G     0   13G   0% /run/user/0

LSBLK

root@data7 ~ # lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    0  14.6T  0 disk
└─sda1        8:1    0  14.6T  0 part  /mnt/da
sdb           8:16   0  14.6T  0 disk
└─sdb1        8:17   0  14.6T  0 part  /mnt/db
sdc           8:32   0  14.6T  0 disk
└─sdc1        8:33   0  14.6T  0 part
sdd           8:48   0  14.6T  0 disk
└─sdd1        8:49   0  14.6T  0 part  /mnt/dc
sde           8:64   0  14.6T  0 disk
└─sde1        8:65   0  14.6T  0 part
sdf           8:80   0  14.6T  0 disk
└─sdf1        8:81   0  14.6T  0 part
sdg           8:96   0  14.6T  0 disk
└─sdg1        8:97   0  14.6T  0 part
sdh           8:112  0  14.6T  0 disk
└─sdh1        8:113  0  14.6T  0 part
sdi           8:128  0  14.6T  0 disk
└─sdi1        8:129  0  14.6T  0 part
sdj           8:144  0  14.6T  0 disk
└─sdj1        8:145  0  14.6T  0 part
sdk           8:160  0  57.7G  0 disk
nvme0n1     259:0    0 894.3G  0 disk
├─nvme0n1p1 259:1    0     4G  0 part
│ └─md0       9:0    0     4G  0 raid1 [SWAP]
├─nvme0n1p2 259:2    0     1G  0 part
│ └─md1       9:1    0  1022M  0 raid1 /boot
└─nvme0n1p3 259:3    0 889.3G  0 part
  └─md2       9:2    0 889.1G  0 raid1 /
nvme1n1     259:4    0 894.3G  0 disk
├─nvme1n1p1 259:5    0     4G  0 part
│ └─md0       9:0    0     4G  0 raid1 [SWAP]
├─nvme1n1p2 259:6    0     1G  0 part
│ └─md1       9:1    0  1022M  0 raid1 /boot
└─nvme1n1p3 259:7    0 889.3G  0 part
  └─md2       9:2    0 889.1G  0 raid1 /

黑子

GETTING UUID
root@data7 ~ # blkid | g sda
/dev/sda1: UUID="cea5e8d9-1ddf-4502-a609-3a17af37082c" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="d0a89050-f533-7245-877e-5006d974516c"
root@data7 ~ # blkid | g sdb
/dev/sdb1: UUID="e3ae1145-d37b-41d7-ac1f-5c6a646bd5ed" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="da1f85c1-9054-d147-a9b8-0965020b4d67"
root@data7 ~ # blkid | g sdc
/dev/sdc1: UUID="47bf4e70-ec50-4369-88c2-9dfd8dd5d422" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="f458a5c3-6b6c-054d-a069-27930dcb02f2"

系统表

/etc/fstab - WAS CORRECT BEFORE RESTART .. CHANGED IT 5+ TIMES AND BREAKS AFTER EVERY RESTART
proc /proc proc defaults 0 0
# /dev/md/0
UUID=e2f568f6-846b-4657-b88d-3c8108d5600c none swap sw 0 0
# /dev/md/1
UUID=a5868f6d-b7e5-43b1-ab81-4770a543d83a /boot ext3 defaults 0 0
# /dev/md/2
UUID=612c81e1-94e4-415e-863f-6dfcbe127dee / ext4 defaults 0 0
# /dev/sda1
UUID=cea5e8d9-1ddf-4502-a609-3a17af37082c /mnt/da xfs defaults 0 2
# /dev/sdb1
UUID=e3ae1145-d37b-41d7-ac1f-5c6a646bd5ed /mnt/db xfs defaults 0 2
# /dev/sdc1
UUID=2b28f001-d9a0-4759-8f29-4bf45a18aeb6 /mnt/dc xfs defaults 0 2

我的其他服务器(回应设备名称在重新启动后不会保留的评论)

root@data2:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            126G     0  126G   0% /dev
tmpfs            26G  1.3G   24G   6% /run
/dev/sda3       5.5T  4.9T  246G  96% /
tmpfs           126G     0  126G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           126G     0  126G   0% /sys/fs/cgroup
/dev/sda2       923M   79M  781M  10% /boot
/dev/sde1       5.5T  5.0T  236G  96% /mnt/de
/dev/sdf1       5.5T  4.1T  1.2T  79% /mnt/df
/dev/sdd1       5.5T  4.7T  468G  92% /mnt/dd
/dev/sdc1       5.5T  5.1T   49G 100% /mnt/dc
/dev/sdb1       5.5T  5.1T   74G  99% /mnt/db
tmpfs            26G     0   26G   0% /run/user/1000
tmpfs            26G     0   26G   0% /run/user/0

root@data3:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            126G     0  126G   0% /dev
tmpfs            26G  2.5G   23G  10% /run
/dev/sda3       5.5T  4.2T  1.1T  81% /
tmpfs           126G     0  126G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           126G     0  126G   0% /sys/fs/cgroup
/dev/sda2       923M   79M  781M  10% /boot
/dev/sdc1        11T   11T  660G  95% /mnt/df
/dev/sdf1        11T  9.2T  1.8T  84% /mnt/de
/dev/sdd1        11T  9.8T  1.2T  90% /mnt/dc
/dev/sde1        11T   11T  191G  99% /mnt/dd
/dev/sdb1        11T   11T  855G  93% /mnt/db
tmpfs            26G     0   26G   0% /run/user/1001
tmpfs            26G     0   26G   0% /run/user/0


root@data4:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            126G     0  126G   0% /dev
tmpfs            26G  2.5G   23G  10% /run
/dev/sda3        11T   11T  249G  98% /
tmpfs           126G     0  126G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           126G     0  126G   0% /sys/fs/cgroup
/dev/sda2       923M   80M  781M  10% /boot
/dev/sdc1        11T  9.3T  1.7T  85% /mnt/dc
/dev/sdd1        11T  9.0T  2.0T  82% /mnt/dd
/dev/sdb1        11T  9.8T  1.2T  90% /mnt/db
tmpfs            26G     0   26G   0% /run/user/1002
tmpfs            26G     0   26G   0% /run/user/1000
tmpfs            26G     0   26G   0% /run/user/1005
tmpfs            26G     0   26G   0% /run/user/0

答案1

不保证设备 ID 在重新启动后保持一致...

你使用了错误的词汇。

有6种安装方式磁盘在linux中,如下所示/dev/disk;这是使用 RHEL-7.9...

by-id/ by-label/ by-partlabel/ by-partuuid/ by-path/ by-uuid/

按 ID是 scsi 标识符或 wwn(全球号码)标识符。

不可靠(或不一致)的方式是安装按设备名称例如,这就是您一直/dev/sdb1 /data/etc/fstab做的事情,并且被错误地称为设备 ID 的。 ID 一致,但设备名称(sda、sdb、sdc 等)不一致。

您将看到这六个/dev/disk/文件夹下的所有内容都是指向设备名称的向上和上方的链接{/dev/sda2例如}

正如评论中提到的,设备名称启动后根据设备被识别的顺序进行映射。添加通过 SATA 电缆连接的新磁盘,不要将其放在磁盘的末尾sda、sdb、sdc...列表。它经常被放在前面sda然后一切都向下移动,这就是不一致的原因。只需交换两个磁盘以及它们在主板上连接的 SATA 端口 - 同样的问题。

  • 通过-UUID非常一致 - 因此得名通用唯一ID
  • 按 ID如scsi id或wwn id,应该也是很可靠的;您经常会wwn在磁盘标签上找到
  • 按标签应该是可靠的,直到您执行类似使用相同标签名称标记多个磁盘(实际上是分区)之类的操作。
  • 我认为旁路不一致,因为如果磁盘连接到不同的 SAT/SAS 端口,那么现在是不同的路径。

答案2

AFAIK过去,磁盘的顺序是通过检测顺序严格定义的:主IDE master = hda,slave = hdb;辅助 IDE 主 = hdc,从 = hdd。新硬件带来了 SATA 通道,导致设备标识符更改为 sda、sdb 等。除了硬件的更改之外,引导响应也发生了变化。开机软件也做了一些改变。 BIOS(或 uEFI)以及引导加载程序和系统引导都开始使用更多 CPU 内核。您可能会注意到 Debian(和其他)从 SysV 迁移initsystemd,因此您可以并行启动更多独立组件,而不是按照目录中“字母”顺序定义的严格顺序/etc/rc3.d。在薛定谔的好奇心评论链接写的是:

...第一个硬盘检测到名为 /dev/sda ...

嗯,这意味着:使用 SysV 按标准顺序轮询磁盘init;但systemd磁盘检测是并行完成的,这意味着第一个检测到的磁盘不必是连接到第一个 SATA 通道的磁盘。第一次接触是由 BIOS (uEFI) 和附加 PCI(e) 卡的 BIOS ROM 完成的 - 例如 SCSI (SAS) 因此,您不能依赖磁盘检测顺序,因为旋转磁盘在加电后需要更多时间来启动,但是热启动后可以立即检测到。这就是为什么添加了UUID和LABEL来标识要挂载的磁盘分区。所以你可以在 fstab(基于 Debian 的 Linux)中看到如下内容:

# / was on /dev/sda1 during installation
UUID=98765432-9876-abcd-9090-1234567890ab / ext4 ...

你可以改变什么

LABEL=mysda1 / ext4 ...

如果将分区的 LABEL 设置为米斯达1。 IDE和SATA磁盘都没有像NIC的MAC地址那样的标准标识符。

答案3

装置名字 (由ID更改)不保证在重新启动后保持一致。在 fstab 中使用 UUID 仍然可以保证您的磁盘始终安装为指向同一路径。即使设备 ID 发生更改,您放置在 /mnt/da、/mnt/db ...等位置的数据将继续驻留在这些位置。

感谢@frostschutz 和其他人的评论。

相关内容