永久 GRUB 编辑,从 RO 到 RW

永久 GRUB 编辑,从 RO 到 RW

我最近在我的笔记本电脑上安装了最新版本的 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并更改rorw,然后运行。这将重新生成启动时使用的sudo update-grub文件。/boot/grub/grub.cfg

不要这样做!ro是正确的设置。更改rorw无济于事。更改启动选项并不能解决您的问题,运行 可以解决fsck。现在,此操作已完成,文件系统可以再次使用。

文件系统损坏不应该发生。您应该查找损坏的原因。这可能是内存问题;运行内存测试(在 Grub 提示符下选择“内存测试”,并让它至少运行一次,例如一整夜)。

答案2

您不想编辑 GRUB 以永久更改rorw。这将导致某些恢复选项无法使用。如果您需要其中某个选项,您可能会遇到问题。更好的方法是编辑文件/usr/share/initramfs-tools/scripts/local并修改该文件中的一行。如果您更改了10_lupin10_linux文件,则需要先还原更改,然后再执行后续操作。

  1. 以 root 超级用户身份在您喜欢的编辑器中打开/usr/share/initramfs-tools/scripts/local文件。查找以下内容:

    mount ${roflag} -o loop -t ${FSTYPE} ${LOOPFLAGS} "/host/${LOOP#/}" ${rootmnt}
    
  2. 注释掉该行并在该行下方添加以下三行(确保它们与您注释掉的上面那行对齐):

    loopdev=`losetup -f`
    losetup ${loopdev} "/host/${LOOP#/}"
    mount ${roflag} -t ${FSTYPE} ${LOOPFLAGS} ${loopdev} ${rootmnt}
    
  3. 保存文件并在终端中运行:

    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

替换行中的roto 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!
  • 重启

相关内容