我最近在我的笔记本电脑上安装了最新版本的 UBUNTU,但在启动时出现了一点小问题。
在启动过程中我收到以下错误:
Serious errors were found while checking the disk drive for /.
在这里做了一些研究后,我能够修复该问题,并在进入 GRUB 启动项并将 RO 转换为 RW 后让 UBUNTU 正常启动。例如;
反渗透:
linux /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk **ro** quiet splash $vt_handoff
RW:
linux /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk **rw** quiet splash $vt_handoff
我如何才能永久编辑它,这样我就不用每次启动时都编辑它了。非常感谢任何帮助。我对这个操作系统完全是菜鸟!
答案1
从字面上回答您的问题:编辑/etc/grub.d/10_linux
并更改ro
为rw
,然后运行。这将重新生成启动时使用的sudo update-grub
文件。/boot/grub/grub.cfg
但不要这样做!ro
是正确的设置。更改ro
为rw
无济于事。更改启动选项并不能解决您的问题,运行 可以解决fsck
。现在,此操作已完成,文件系统可以再次使用。
文件系统损坏不应该发生。您应该查找损坏的原因。这可能是内存问题;运行内存测试(在 Grub 提示符下选择“内存测试”,并让它至少运行一次,例如一整夜)。
答案2
您不想编辑 GRUB 以永久更改ro
为rw
。这将导致某些恢复选项无法使用。如果您需要其中某个选项,您可能会遇到问题。更好的方法是编辑文件/usr/share/initramfs-tools/scripts/local
并修改该文件中的一行。如果您更改了10_lupin
或10_linux
文件,则需要先还原更改,然后再执行后续操作。
以 root 超级用户身份在您喜欢的编辑器中打开
/usr/share/initramfs-tools/scripts/local
文件。查找以下内容:mount ${roflag} -o loop -t ${FSTYPE} ${LOOPFLAGS} "/host/${LOOP#/}" ${rootmnt}
注释掉该行并在该行下方添加以下三行(确保它们与您注释掉的上面那行对齐):
loopdev=`losetup -f` losetup ${loopdev} "/host/${LOOP#/}" mount ${roflag} -t ${FSTYPE} ${LOOPFLAGS} ${loopdev} ${rootmnt}
保存文件并在终端中运行:
sudo update-grub
之后,您可以重新启动系统,这样无论何时内核更新,您都可以正常使用,并且能够使用恢复选项。请确保备份已编辑的文件,以防升级删除您的更改。这样,如果升级破坏了您的更改,您可以复制备份文件中修改的行并将其放置在正确的位置。
答案3
我所做的是:
- 挂载 root.disk 到
/dev/1
- 将 ro 修改为 rw
/dev/1/boot/grub/grub.cfg
- 重启
- 成功加载 Ubuntu
细节:
sudo mkdir /dev/1
sudo mount -t ext4 -o loop /host/ubuntu/disks/root.disk /dev/1
sudo vi /dev/1/boot/grub/grb.cfg
替换行中的ro
to rw
,如下所示
linux /vmlinuz-2.6.28-13-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro quiet splash
到
linux /vmlinuz-2.6.28-13-generic root=UUID=9018bfe2-9de3-4692-9883-fc2f875e6455 ro quiet splash
- 保存使用
wq!
- 重启