帮助 grub2 启动 ubuntu

帮助 grub2 启动 ubuntu

我的 ubuntu 系统在修改文件 /etc/default/grub 后无法启动,即使我稍后撤回修改。

我有一台装有四个操作系统的 PC:1. 带有 grub2 的 Ubuntu;2. Centos;3. Debian;4. gentoo。

崩溃的是 Ubuntu。这就是我在这里发布问题的原因。

由于 gentoo 最近更新需要安装 systemd,我需要更改 ubuntu 中安装的 grub2 的配置,具体如下两步

修改1:添加额外的行:

    init=/usr/lib/systemd/systemd

到/boot/grub/grub.cfg中gentoo的菜单项。这个修改绝对不会影响其他系统的启动。

修改2:添加

    GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"

在 Ubuntu 系统的 /etc/default/grub 中,没有安装 systemd。当然第二种修改不适合我的情况,因为在 ubuntu 中没有安装 systemd(ubuntu 的 /usr/lib/systemd/systemd 中没有任何东西)。

但是,第二个修改却带来了麻烦。添加此行后,系统无法启动到 ubuntu(grub 菜单仍然有效)。意识到这个问题后,我决定撤回第二个修改。但是,当我再次启动 ubuntu 时,系统冻结并显示以下屏幕:

 Target filesystem desn't have requested /usr/lib/systemd/systemd
 busybox v1.20.2 (Debian 1:1.20.0-7) multi-call binary
 Usage: switch_root '-c /dev/console] NEW_ROOT NEW_INIT [ARGS}
 Free initramfs and switch to another root fs:
 Chroot to NEW_ROOT, delete all in /, move NEW_ROOT to /.
 execute NEW_INIT. PID must be 1 NEW_ROOT must be a mountpoint. 

 -c DEV reopen stdio to DEV

只能通过关闭然后打开电脑来进行重置,而不是通过 ctrl+alt+del 来完成。

这个问题100%可重现。因为ubuntu无法正常工作,我从debian系统安装了grub2。在debian系统中对/etc/default/grub进行修改2并重新启动debian并撤消修改后,出现了完全相同的屏幕。

有人能帮忙解决这个问题吗?现在只有 centos 可以运行,我在 askubuntu 上写了这个帮助问题。

答案1

文件

 /etc/default/grub

用于存储使用时的默认 grub 参数更新 grub. 作为注释行/etc/默认/grub说:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
#   info -f grub -n 'Simple configuration'

当然如果你添加:

 init=/usr/lib/systemd/systemd

/etc/默认/grub,运行后更新 grub, 你将会拥有初始化=/usr/lib/systemd/systemd对于每个菜单项。例如:

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
    load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos8)'
search --no-floppy --fs-uuid --set=root ca645602-ca68-498a-87d2-46cf205285dc
echo    'Loading Linux 2.6.32-5-amd64 ...'
linux   /boot/vmlinuz-2.6.32-5-amd64 root=UUID=ca645602-ca68-498a-87d2-46cf205285dc ro init=/usr/lib/systemd/systemd quiet
echo    'Loading initial ramdisk ...'
initrd  /boot/initrd.img-2.6.32-5-amd64
}

如果没有安装 systemd,则无法启动 debian。

相关内容