排查新建AWS Rocky 8 AMI启动后根目录只读问题
问题排查与解决方案
针对你用Packer构建Rocky 8 LVM AMI后根目录只读的问题,以下是几个核心排查方向:
1. 检查GRUB内核启动参数
- 查看
/etc/default/grub中的GRUB_CMDLINE_LINUX配置,确认是否仅包含ro参数但未添加自动切换读写的触发逻辑,比如缺少rootflags=rw或相关systemd挂载参数。 - 执行
grub2-mkconfig -o /boot/grub2/grub.cfg重新生成GRUB配置,确保修改生效后再重新打包AMI。
2. 验证systemd早期挂载服务状态
- 控制台登录后执行
systemctl status systemd-remount-fs.service,查看该服务是否正常运行——这个服务负责在启动阶段将根文件系统从只读重新挂载为读写。 - 检查
journalctl -u systemd-remount-fs.service的日志,看是否有挂载失败的报错,比如LVM卷路径识别错误、权限异常等。
3. 确认initramfs包含LVM模块
- 检查是否安装了
dracut-lvm包:rpm -q dracut-lvm,如果未安装,执行dnf install -y dracut-lvm。 - 更新initramfs镜像:
dracut -f /boot/initramfs-$(uname -r).img $(uname -r),确保LVM相关模块被包含在启动镜像中,否则启动时无法正确识别逻辑卷,会导致挂载异常。
4. 检查根文件系统完整性
- 执行
fsck /dev/mapper/[你的根逻辑卷名](替换为实际LV路径,比如/dev/mapper/rocky-root),检查文件系统是否存在潜在损坏。如果有错误,修复后再测试启动。 - 查看
journalctl -u systemd-fsck-root.service的日志,确认fsck过程是否正常完成,未触发只读保护机制。
5. 验证fstab的根分区配置
- 再次确认
/etc/fstab中根分区的挂载选项是否包含rw或defaults(defaults默认包含rw),且LV的UUID或路径正确。可以用blkid获取根LV的UUID,对比fstab中的配置是否一致。
内容的提问来源于stack exchange,提问作者Systemgeek
相关产品推荐
相关产品推荐

