许多关于如何挂载 btrfs 文件系统的指南都说您可以使用文件系统中的任何设备进行挂载。
例如:如果文件系统中有 sda1、sdb1 和 sdc1,则您可以使用其中任意一个设备进行挂载。
但是如果 sda1 发生故障,而这正是要挂载的文件中的内容/etc/fstab
,会发生什么?我认为它会失败。那么,即使设备发生故障,我如何确保 btrfs 文件系统也能挂载?
答案1
请勿sda1
在 中使用 或诸如此类的东西fstab
。使用UUID=
。
对于 Btrfs,属于同一文件系统的每个设备都会报告相同的 UUID。您可以通过使用 查询所有相关设备来确认这一点blkid
。btrfs filesystem show
还会显示单个文件系统使用单身的UUID,无论涉及多少个设备。
Btrfs 使用此 UUID 来识别属于同一文件系统的设备。即使您通过指定/dev/sda1
或 so 进行挂载,它也会使用它。这就是为什么使用dd
或类似工具进行克隆有问题的。
但即使您指定了UUID=
infstab
并且缺少其中一个设备,文件系统也不会挂载。您需要选择degraded
挂载此类文件系统(如果可能)。指定degraded
in fstab
(和/或在 Grub 配置中)是可能的,并且您可能希望它在远程服务器中,因此如果出现问题,系统仍会启动,继续运行,管理员可以远程访问并尝试修复。但如果您可以物理访问机器,请考虑不指定degraded
in fstab
。我宁愿我的本地计算机不要挂载有问题的文件系统(从而引起我的注意),也不愿在降级模式下自动挂载并冒着我忽略问题的风险。