格式化 `/boot` 分区后如何让 grub 检测旧操作系统

格式化 `/boot` 分区后如何让 grub 检测旧操作系统

我把我的电脑设置如下:

/boot - 250 MB ext3  
/ 100 GB ext4, Kubuntu

现在我需要安装 Ubuntu,因此我创建了一个新的 8 GB 分区,/并格式化了前一个/boot分区,并将该分区设置为新分区/boot以用于此新安装。

问题是,现在我的 Kubuntu 分区就像一个/home分区和一些其他系统文件夹,但没有/boot,grub 只能看到新的 Ubuntu 安装。

请帮忙,我一年半来的所有工作都是在 Kubuntu 上完成的,我必须找回它。我可以去复制我的 Firefox 配置文件(因为这是我在那里最重要的文件),但我真的希望找回我的系统。

编辑:
当我sudo update-grub这样做时,它会说:

Generating grub.cfg ... 
Found linux image: /boot/vmlinuz-3.2.0-26-generic 
Found initrd image: /boot/initrd.img-3.2.0-26-generic 
Found linux image: /boot/vmlinuz-3.2.0-23-generic 
Found initrd image: /boot/initrd.img-3.2.0-23-generic 
Found memtest86+ image: /memtest86+.bin 
Found Ubuntu 12.04 LTS (12.04) on /dev/sda6 
done 

我的 Kubuntu 在 /dev/sda6
但是当我重新启动时它只显示此选项:

Ubuntu, with Linux 3.2.0-26-generic 
Ubuntu, with Linux 3.2.0-26-generic (recovery mode) 
Previous Linux versions(in here are 3.2.0-23 and 3.2.0-23 recovery mode) 
Memory test (memtest86+) 
Memory test (memtest86+, serial console 115200) 

就是这样,没有 Kubuntu 或Ubuntu 12.04 LTS on /dev/sda6
在一篇帖子中,有人说必须手动更新 grub.cfg(在我的情况下为 Kubuntu 写入条目)但它不起作用,可能是我做错了什么...

编辑2:
我在 grub.cfg 中手动添加了 Kubuntu,复制了 Ubuntu 菜单项,并在的帮助sudo blkid下找到了 UUID,并用 Kubuntu 分区 UUID 替换了 Ubuntu 分区 UUID。重新启动后,它就在那里,启动了,但现在它显示:在此处输入图片描述

如果我按下S它,它会继续并启动一切正常...
有人知道如何摆脱通知吗?:)

答案1

编辑前的问题的答案如下:

在对问题进行最新编辑后,看来 OP 已成功启动到 Kubuntu,我的假设(他还删除了启动分区的内核)错了。那么问题就变成这样

我终于启动到 Kubuntu 了,但是如何才能避免在启动时出现提示按下跳过安装的屏幕S呢?

这个问题的答案是:

  • 以 root 权限打开/etc/fstabKubuntu 分区的文件。
  • 删除这样的行

     UUID=xxxxxx        ext4        /boot       0   0  
    

    也就是说,删除包含的行/boot,该行以前用于挂载启动分区(如果您以前有一个,但现在没有)。

那么一切都会好起来的。


编辑之前的第一个答案,假设他已经删除了带有启动分区的 Kubuntu 内核。

根据您安装的 Kubuntu 版本,使用以下步骤。

  1. 如果你没有 Kubuntu iso(与安装的版本相同), 得到一个。

  2. 创建两个文件夹(在您的 kubuntu iso 所在的文件夹中),名称分别为isolive

  3. 打开终端并转到 Kubuntu 的 iso 文件目录。例如,我们假设您的主目录中的 Downloads 文件夹中有该 iso。kubuntu.iso为简单起见,将 iso 的名称设为。

  4. iso使用此命令将 iso 挂载到文件夹中

     sudo mount ./kubuntu.iso ./iso
    
  5. 然后将filesystem.squashfs挂载的iso文件的casper目录中的文件挂载到该live文件夹​​中。

    sudo mount ./iso/casper/filesystem.squashfs ./live
    
  6. 然后将vmlinuz和复制initrd.lz到kubuntu分区中。首先boot在其中创建一个文件夹。然后将所需的文件复制到该文件夹​​中。

    1. 首先挂载旧 Kubuntu 的分区。您需要知道/dev/sdax该分区的编号。使用sudo blkid命令查看。我们假设它是/dev/sda2。使用以下命令将其挂载到 /mnt 文件夹中。

      sudo mount /dev/sda2 /mnt
      
    2. 安装后,boot在该分区中创建一个文件夹。

      sudo mkdir /mnt/boot
      
    3. 然后使用命令将文件复制vmliuzinitrd.lz放到挂载的kubuntu分区的/boot文件夹中

      sudo cp ./iso/vmlinuz /mnt/boot  
      sudo cp ./iso/initrd.lz /mnt/boot
      
    4. 然后使用命令将 iso 文件中 boot 文件夹的内容复制到 kubuntu 驱动器新创建的 boot 文件夹中。

      sudo cp -r ./live/boot/* /mnt/boot 
      
  7. 然后卸载 ./iso 和 ./live 文件夹(此步骤可选)

     sudo umount ./live
     sudo umount ./iso
    
  8. 然后运行命令让 grub 检测你的 kubuntu

     sudo update-grub
    

希望这会有所帮助。

参考:我不小心删除了我的启动文件夹,并使用该程序能够再次启动到该发行版。

相关内容