
在安装完基本系统后
使用 genfstab -L >> /mnt/etc/fstab
通过设备名挂载的方式,写入 fstab
但是在开机时遇到了报错,如图所示

然后我回到 iso 安装环境,做了点测试
发现 UUID 是存在的,但是无法通过 mount -U 无法挂载
同时 fstab 没有使用 UUID 的方式挂载分区
磁盘
3 个 1T HDD 组成 raid 0
分区和文件系统
/dev/md126 md126p1 EFI vfat 256M md126p2 grub ext4 512M md126p3 / btrfs 500G md126p4 null null 500G md126p5 null null 1.8T 挂载报错的是我根分区 md126p3 下的 btrfs 子卷
下图是测试过程演示

经过 #9 的提醒,发现测试过程做错了
现在重新做了一下

1 shylockhg 2018-12-14 08:39:39 +08:00 grub? |
2 heixiaobai OP @shylockhg #1 是的,用 grub2 作为引导 |
3 shylockhg 2018-12-14 08:45:14 +08:00 @HeiXiaoBai 这个好像对 btrfs 支持不好,,我之前装直接 error 警告,我就重新分区了 |
4 heixiaobai OP 补充一点:刚才经过测试,发现不止 md126p3(btrfs)无法挂载 其他的两个分区(vfat\grub)通过 UUID 挂载也会出现报错 无论是 arch 安装环境,还是通过 arch-chroot 进入系统分区后 |
5 heixiaobai OP @shylockhg #3 我的 grub 是 ext4 分区,并且在我的另一台机子是没问题的 | ||
6 vB4h3r2AS7wOYkY0 2018-12-14 08:56:17 +08:00 看起来你的 fstab 和我以前的 fstab 不一样?! https://gist.github.com/Kazetoyuki/5522f14ab01396f6c2e0f912cb6b9039 我的是 UUID 开头 你仍然是以 /dev/dev_name 开头所以找不到 UUID? 重新生成一下 fstab 吧. genfstab -U /mnt >> /mnt/etc/fstab 记得 -U 使用 UUID |
7 heixiaobai OP @MayKiller #6 最初就是使用 genfstab -U 生成的,报错后以为是生成的 UUID 问题,才重新生成了以设备名挂载的 fstab |
8 vB4h3r2AS7wOYkY0 2018-12-14 09:01:39 +08:00 又或者你非常想使用设备名. 修改 /etc/grub.d/40_custom 添加如下 GRUB_DISABLE_LINUX_UUID=true 重新 grub-mkconfig -o /<PATH> |
9 mikeguan 2018-12-14 09:04:04 +08:00 via Android 没试过 不过看 mount -U 报错 感觉是把 UUID 也作为一部分了 |
10 heixiaobai OP @mikeguan #9 emmm,你一说我才发现做的测试做错了 |
11 vB4h3r2AS7wOYkY0 2018-12-14 09:08:54 +08:00 emm 还有 fstab 的 / mount options subvol=/hxb,subvol=hxb 这是生成的还是自己加的... |
12 heixiaobai OP @MayKiller #11 生成的 |
13 vB4h3r2AS7wOYkY0 2018-12-14 09:20:00 +08:00 @HeiXiaoBai 是 nvme 驱动器么... 无意间逛到了这一帖 https://bbs.archlinux.org/viewtopic.php?id=208132 #6 试一下? 不确定是否是这个原因 |
14 vB4h3r2AS7wOYkY0 2018-12-14 09:23:14 +08:00 @MayKiller #13 脑抽忘记审题了 明明都说了是 3 个 HDD 组的 RIAD 无视 #13 吧 |
15 Osk 2018-12-14 09:27:29 +08:00 via Android 用了 lvm 和 md raid? 看一下 mkinitcpio conf 里面的 hooks 顺序是否正确。 在开机时报错那里你可以 ls /dev/disk/by-uuid/ 看下你的 root fs uuid 是否出来了。 |
16 vB4h3r2AS7wOYkY0 2018-12-14 09:30:43 +08:00 |
17 heixiaobai OP |
18 heixiaobai OP @MayKiller #16 说实话,这两个 wiki 看得我一懵(_) |
19 meppy 2018-12-14 10:03:33 +08:00 为啥用 arch …找虐么这不是 |
20 heixiaobai OP @meppy #19 Arch 大法好 /滑稽 |
21 vB4h3r2AS7wOYkY0 2018-12-14 10:25:54 +08:00 @HeiXiaoBai ... 看不明白旁边选中文... 我刚刚去看了一下翻译应该没问题... https://wiki.archlinux.org/index.php/RAID#Configure_mkinitcpio 重要的就这个了... 添加 mdadm_udev 到 /etc/mkinitcpio.conf 注意顺序 然后 mkinitcpio -p linux 重新生成 initramfs. 配置好了以后更新 kernel 也不用管了... |
22 Osk 2018-12-14 10:25:55 +08:00 via Android @HeiXiaoBai 看这情况你的 mkinitcpio raid 配置可能有问题。贴下你的 /etc/mkinitcpio.conf 看看? 参考 https://wiki.archlinux.org/index.php/RAID#Configure_mkinitcpio 你用的是哪种方式组的 raid 啊? lvm 还是 mdadm ??? |
23 heixiaobai OP @Osk #22 主板自带,硬件 raid |
24 Osk 2018-12-14 10:30:09 +08:00 via Android 对了既然都上 btrfs 了,可以考虑下 btrfs 自带的 raid 0 啊,目测能提供不少 md 做不到的功能,比如在线添加移除磁盘. 只要别用 raid5/6 就好。 滑稽 |
25 Osk 2018-12-14 10:32:23 +08:00 via Android @HeiXiaoBai 硬盘 raid 得看你的是哪种 raid 控制器了。。。然后把它驱动加到 mkinitcpio.conf 中 |
26 heixiaobai OP |
27 vB4h3r2AS7wOYkY0 2018-12-14 10:46:48 +08:00 @HeiXiaoBai 图炸了 就二图的情况来看... 没问题. 本来就没有 fsck.btrfs 前俩 warnings 都是 fsck.btrfs 的 后俩 warnings https://wiki.archlinux.org/index.php/Mkinitcpio#Possibly_missing_firmware_for_module_XXXX 一般来说用不到的模块, 如果不使用可忽略 |
28 reus 2018-12-14 10:46:58 +08:00 应该是 initramfs 没有加载驱动,所以没法读硬盘分区信息,所以找不到那个 UUID 如果 iso 里面可以看到,那说明是可以驱动的,找出那个驱动的模块名,arch-chroot 进去之后,加到 /etc/mkinitcpio.conf 里,再 mkinitcpio -p linux,就能让启动时找到那个分区了 模块名你要搜索下 |
29 reus 2018-12-14 10:52:37 +08:00 MODULES="dm_mod md_mod raid1 btrfs" 试试 |
30 heixiaobai OP @MayKiller 刚才回复太频繁被禁言= = 已经解决啦,多谢(〃''〃) |
31 Rokee 2018-12-14 11:43:50 +08:00 via iPhone 为什么不用 arch 系的 manjaro,简单 |
32 zst 2018-12-14 11:54:27 +08:00 via Android 强烈推荐 majaro 和 antergo。。省心啊 |
33 dontaskcece 2018-12-14 13:06:22 +08:00 via Android 我用的 archanywhere,原版加安装器,好用 |