linux UUID挂载磁盘


一台Debian13新服务器做了初始化重启以后起不来了,VNC进去卡着启动界面,后来是挂载磁盘的问题,

磁盘原来挂载的是/dev/nvme1n1,没用uuid,而设备名在重启后发生了漂移(比如 /dev/sdb1 变成了 /dev/sdc1)系统按旧名字找不到盘,挂载失败卡住。‌‌
设备名是内核按启动时检测顺序动态分配的,多块硬盘、不同接口或驱动加载顺序变化,都可能导致顺序不稳定, 所以靠它做永久挂载本身就不可靠。‌‌
永久解决办法使用uuid
查找uuid:

1.lsblk -f 也可以查看未挂载的文件系统类型

lsblk  -f
NAME        FSTYPE FSVER LABEL UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
nvme1n1     ext4   1.0         57e5e9fb-6e7c-44d4-92ad-9ec598434a50   53.1G     5% /data
nvme0n1                                                                            
├─nvme0n1p1                                                                        
├─nvme0n1p2 vfat   FAT32       1025-FC34                               179M     5% /boot/efi
└─nvme0n1p3 ext4   1.0         4a620ae2-196b-4821-abf9-eea8346c31d7   18.6G    48% /

2.blkid

$blkid  
/dev/nvme0n1p3: UUID="4a620ae2-196b-4821-abf9-eea8346c31d7" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="08cd1842-279b-4f69-81ca-71e1f483863a"
/dev/nvme0n1p2: UUID="1025-FC34" BLOCK_SIZE="512" TYPE="vfat" PARTUUID="4e0ce07e-b854-4ab9-92d2-6cd04aeb8f06"
/dev/nvme1n1: UUID="57e5e9fb-6e7c-44d4-92ad-9ec598434a50" BLOCK_SIZE="4096" TYPE="ext4"
/dev/nvme0n1p1: PARTUUID="cdcdc179-e068-4295-8373-e46f5510c32a"


blkid  |grep nvme1n1
/dev/nvme1n1: UUID="57e5e9fb-6e7c-44d4-92ad-9ec598434a50" BLOCK_SIZE="4096" TYPE="ext4"

查看磁盘和分区的命令
df -T 只可以查看已经挂载的分区和文件系统类型。
fdisk -l 可以显示出所有挂载和未挂载的分区,但不显示文件系统类型。
lsblk -f 也可以查看未挂载的文件系统类型。
parted -l 可以查看未挂载的文件系统类型,以及哪些分区尚未格式化。

fdisk -l

Disk /dev/nvme1n1: 60 GiB, 64424509440 bytes, 125829120 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 /dev/nvme0n1: 40 GiB, 42949672960 bytes, 83886080 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
Disklabel type: gpt
Disk identifier: F350BB20-FDB1-4724-92E9-F390109435C2

Device Start End Sectors Size Type
/dev/nvme0n1p1 2048 4095 2048 1M BIOS boot
/dev/nvme0n1p2 4096 395263 391168 191M EFI System
/dev/nvme0n1p3 395264 83886046 83490783 39.8G Linux filesystem

新挂磁盘:
/dev/nvme1n1 60G, uuid:57e5e9fb-6e7c-44d4-92ad-9ec598434a50

编辑/etc/fstab文件, 在文件尾部添加需要挂载磁盘的UUID 并添加一些信息:
/swapfile swap swap defaults 0 0
UUID=57e5e9fb-6e7c-44d4-92ad-9ec598434a50 /data ext4 defaults 0 0

配置参数详解:
/etc/fstab文件各字段说明:

字段顺序 参数名称 示例值 说明
1 设备标识 UUID=57e5e9fb-6e7c-44d4-92ad-9ec598434a50 推荐使用UUID
2 挂载点 /data 必须存在且权限正确
3 文件系统类型 ext4 需与实际格式一致
4 挂载选项 defaults 常用组合:rw,suid,dev,exec,auto,nouser,async
5 dump备份标志 0 0表示禁用,1表示启用
6 fsck检查顺序 0 0 表示不检查,根文件系统用1,其他分区用2

高级配置技巧
自定义挂载选项
在defaults基础上添加特殊选项:

noatime:禁止更新访问时间
ro:只读挂载
nodev:禁止设备文件 示例配置:
UUID=xxx /data ext4 defaults,noatime,nodev 0 2

‌测试配置‌:保存后执行 sudo mount -a 命令测试配置,若无错误输出则表示配置正确
重启验证: df -h查看分区是否成功挂载;

hdparm测试磁盘:

sudo apt (yum)install hdparm

hdparm -Tt /dev/sdb1

/dev/sdb1:
Timing cached reads: 26796 MB in 2.00 seconds = 13428.81 MB/sec
Timing buffered disk reads: 402 MB in 3.02 seconds = 133.00 MB/sec

hdparm 主要用于测试硬盘‌读取速度‌,无法直接测试写入速度。最常用的测试命令是 hdparm -Tt /dev/sda。‌‌‌

怎么测试读取速度
‌测试缓存读取‌:执行 hdparm -T /dev/sdb1,测试内存缓冲区的读取效率,数值通常很高。
‌测试磁盘读取‌:执行 hdparm -t /dev/sdb1,测试硬盘实际从盘片读取数据的速度。
‌组合测试‌:执行 hdparm -Tt /dev/sdb1,一次性查看缓存和磁盘的读取性能。
‌指定块大小‌:若需测试不同块大小,可加 –blocksize=64 等参数。‌‌‌
怎么测试写入速度
hdparm 本身不支持写入测试。若需测试写入性能,建议使用 dd 命令,例如:
dd if=/dev/zero of=test.img bs=1G count=1 oflag=dsync。‌‌‌

该命令会写入 1GB 数据并同步磁盘,能反映真实写入速度。

测试结果怎么看
‌Timing cached reads‌:缓存读取速度,单位通常为 MB/sec,数值越大越好。
‌Timing buffered disk reads‌:磁盘读取速度,单位通常为 MB/sec,SSD 通常在 500MB/s 以上,机械硬盘较低。
‌注意‌:测试前请确保硬盘未被其他程序占用,且测试设备路径(如/dev/sdb1)正确。‌‌‌


文章作者: 云上的小雨滴
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 云上的小雨滴 !
评论
  目录