首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
V2EX  ›  Linux

[求助] Linux 小白安装 Arch 时遇到的关于 mount 的报错

  •  1
     
  •   HeiXiaoBai · 66 天前 · 1580 次点击
    这是一个创建于 66 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    然后我回到 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 子卷
    下图是测试过程演示
    image

    第 1 条附言  ·  66 天前

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

    第 2 条附言  ·  66 天前
    搞定,使用 @MayKiller #21 的方法,成功解决
    多谢 T▽T
    33 回复  |  直到 2018-12-14 13:06:22 +08:00
        1
    shylockhg   66 天前
    grub?
        2
    HeiXiaoBai   66 天前
    @shylockhg #1
    是的,用 grub2 作为引导
        3
    shylockhg   66 天前
    @HeiXiaoBai 这个好像对 btrfs 支持不好,,我之前装直接 error 警告,我就重新分区了
        4
    HeiXiaoBai   66 天前
    补充一点:刚才经过测试,发现不止 md126p3(btrfs)无法挂载
    其他的两个分区(vfat\grub)通过 UUID 挂载也会出现报错
    无论是 arch 安装环境,还是通过 arch-chroot 进入系统分区后
        5
    HeiXiaoBai   66 天前
    @shylockhg #3 我的 grub 是 ext4 分区,并且在我的另一台机子是没问题的
        6
    MayKiller   66 天前
    看起来你的 fstab 和我以前的 fstab 不一样?!



    我的是 UUID 开头 你仍然是以 /dev/dev_name 开头所以找不到 UUID?
    重新生成一下 fstab 吧.

    genfstab -U /mnt >> /mnt/etc/fstab
    记得 -U 使用 UUID
        7
    HeiXiaoBai   66 天前
    @MayKiller #6
    最初就是使用 genfstab -U 生成的,报错后以为是生成的 UUID 问题,才重新生成了以设备名挂载的 fstab
        8
    MayKiller   66 天前
    又或者你非常想使用设备名.
    修改 /etc/grub.d/40_custom
    添加如下
    GRUB_DISABLE_LINUX_UUID=true
    重新 grub-mkconfig -o /<PATH>
        9
    mikeguan   66 天前 via Android
    没试过 不过看 mount -U 报错 感觉是把 UUID 也作为一部分了
        10
    HeiXiaoBai   66 天前
    @mikeguan #9
    emmm,你一说我才发现做的测试做错了
        11
    MayKiller   66 天前
    emm 还有 fstab 的 / mount options subvol=/hxb,subvol=hxb
    这是生成的还是自己加的...
        12
    HeiXiaoBai   66 天前
    @MayKiller #11 生成的
        13
    MayKiller   66 天前
    @HeiXiaoBai
    是 nvme 驱动器么... 无意间逛到了这一帖
    https://bbs.archlinux.org/viewtopic.php?id=208132 #6
    试一下? 不确定是否是这个原因
        14
    MayKiller   66 天前
    @MayKiller #13 脑抽忘记审题了 明明都说了是 3 个 HDD 组的 RIAD
    无视 #13 吧
        15
    Osk   66 天前 via Android
    用了 lvm 和 md raid? 看一下 mkinitcpio conf 里面的 hooks 顺序是否正确。
    在开机时报错那里你可以 ls /dev/disk/by-uuid/ 看下你的 root fs uuid 是否出来了。
        17
    HeiXiaoBai   66 天前
    @Osk #15
    emmmm
    <img src=" " alt="image" width="4000" data-width="4000" data-height="2000">
        18
    HeiXiaoBai   66 天前
    @MayKiller #16 说实话,这两个 wiki 看得我一懵╮(╯_╰)╭
        19
    meppy   66 天前
    为啥用 arch …找虐么这不是
        20
    HeiXiaoBai   66 天前
    @meppy #19 Arch 大法好 /滑稽
        21
    MayKiller   66 天前
    @HeiXiaoBai ... 看不明白旁边选中文... 我刚刚去看了一下翻译应该没问题...
    https://wiki.archlinux.org/index.php/RAID#Configure_mkinitcpio
    重要的就这个了...
    添加 mdadm_udev 到 /etc/mkinitcpio.conf 注意顺序
    然后 mkinitcpio -p linux 重新生成 initramfs.
    配置好了以后更新 kernel 也不用管了...
        22
    Osk   66 天前 via Android
    @HeiXiaoBai 看这情况你的 mkinitcpio raid 配置可能有问题。贴下你的
    /etc/mkinitcpio.conf 看看?

    参考 https://wiki.archlinux.org/index.php/RAID#Configure_mkinitcpio

    你用的是哪种方式组的 raid 啊? lvm 还是 mdadm ???
        23
    HeiXiaoBai   66 天前
    @Osk #22 主板自带,硬件 raid
        24
    Osk   66 天前 via Android
    对了既然都上 btrfs 了,可以考虑下 btrfs 自带的 raid 0 啊,目测能提供不少 md 做不到的功能,比如在线添加移除磁盘. 只要别用 raid5/6 就好。

    滑稽🤣
        25
    Osk   66 天前 via Android
    @HeiXiaoBai 硬盘 raid 得看你的是哪种 raid 控制器了。。。然后把它驱动加到 mkinitcpio.conf 中
        27
    MayKiller   66 天前
    @HeiXiaoBai 图炸了



    就二图的情况来看... 没问题. 本来就没有 fsck.btrfs
    前俩 warnings 都是 fsck.btrfs 的
    后俩 warnings https://wiki.archlinux.org/index.php/Mkinitcpio#Possibly_missing_firmware_for_module_XXXX
    一般来说用不到的模块, 如果不使用可忽略
        28
    reus   66 天前
    应该是 initramfs 没有加载驱动,所以没法读硬盘分区信息,所以找不到那个 UUID
    如果 iso 里面可以看到,那说明是可以驱动的,找出那个驱动的模块名,arch-chroot 进去之后,加到 /etc/mkinitcpio.conf 里,再 mkinitcpio -p linux,就能让启动时找到那个分区了
    模块名你要搜索下
        29
    reus   66 天前
    MODULES="dm_mod md_mod raid1 btrfs" 试试
        30
    HeiXiaoBai   66 天前
    @MayKiller 刚才回复太频繁被禁言= =
    已经解决啦,多谢(〃'▽'〃)
        31
    Rokee   66 天前 via iPhone
    为什么不用 arch 系的 manjaro,简单
        32
    zst   66 天前 via Android
    强烈推荐 majaro 和 antergo。。省心啊
        33
    dontaskcece   66 天前 via Android
    我用的 archanywhere,原版加安装器,好用
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2817 人在线   最高记录 4346   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 20ms · UTC 10:56 · PVG 18:56 · LAX 02:56 · JFK 05:56
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1