我正在尝试在联想ideapad 320 (151IAP) 上安装覆盖Windows 的Ubuntu。我正在启动使用启动磁盘创建器和 18.04 映像创建的 USB 记忆棒。
这将是一篇很长的文章,因为我尝试了很多不同的东西,但我的假设是我有一个工作安装的 ubuntu,我只需要让它正常启动;我不太确定情况是否如此。这是我最新的引导修复输出。
更新:我尝试使用这些说明从 grub 引导并得到错误“在 /etc/fstab 中找不到 /root”和“在 /root/dev 上挂载 /dev 失败:没有这样的文件或目录”,与运行相同。另外,我看到 /home/dustan/ 目录是空的。我不太确定目录系统在正确安装后应该如何看待,所以如果我错了请纠正我:在我看来,这似乎证明了我只需要修复 grub 的假设的证据。我尝试使用 mkusb 而不是默认的启动磁盘创建器制作 USB 棒;它仍然挂在安装 grub 上。
这是完整的故事:
我遇到的第一个问题是安装程序挂在“配置硬件”上。根据此处给出的建议,我最终弄清楚了如何禁用安全启动和快速启动,并且安装程序不再挂在那里。
相反,它挂在 Grub2 上,所以我按照这里给出的建议(在几次尝试失败后)指定 Ubuntu 分区(sda2)与引导分区(sda1)分开。它仍然挂在 Grub2 上(没有绕过它,所以我不太确定这个答案到底是什么意思)。
在配置硬件和 Grub2 挂起的情况下,我已经给了计算机几个小时来正确安装。
当我查看安装程序中的日志时,它显示了与使用触摸板相关的“无效报告 ID 数据”的重复实例。这个触摸板和 Ubuntu 的驱动程序确实存在一个已知问题,但是尽管存在这些错误,触摸板仍然可以正常工作,我想如果我真的可以让 Ubuntu 正常工作,我以后可能会处理驱动程序问题。不幸的是,这些错误可能掩盖了任何实际的严重错误。
因此,经过多次尝试使其正常工作后,我最终决定尝试修复 Grub。
在我列出引导修复错误之前,我忘了提到我在上面安装时尝试过的另一件事;一旦我弄清楚如何修改引导行,我就尝试了 noacpi、nolapic、irqpoll 和 noapic(我在某种程度上将其用作参考,但我仍然不知道我实际上在做什么)。
如果我按照引导修复中的推荐修复,它会挂起而没有提供任何反馈。
如果我在引导修复中的高级选项下禁用 SecureBoot,然后运行推荐的修复,它将自行设置为清除 grub,然后显示“请打开终端并键入以下命令:”
sudo chroot "/mnt/boot-sav/sda2" dpkg --configure -a
sudo chroot "/mnt/boot-sav/sda2" apt-get install -fy
sudo chroot "/mnt/boot-sav/sda2" apt-get purge -y grub*-common grub-common:i386 shim-signed
运行第一个命令给出:
ubuntu@ubuntu:~$ sudo chroot "/mnt/boot-sav/sda2" dpkg --configure -a
Setting up grub-efi-amd64-signed (1.93+2.02-2ubuntu8) ...
Installing for x86_64-efi platform.
grub-install: error: efibootmgr failed to register the boot entry: Unknown error -1.
dpkg: error processing package grub-efi-amd64-signed (--configure):
installed grub-efi-amd64-signed package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
grub-efi-amd64-signed
ubuntu@ubuntu:~$
我没想到第二个命令会起作用,但我还是尝试了它,然后它就挂了:
ubuntu@ubuntu:~$ sudo chroot "/mnt/boot-sav/sda2" apt-get install -fy
Reading package lists... Done
Building dependency tree
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 43 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up grub-efi-amd64-signed (1.93+2.02-2ubuntu8) ...
Installing for x86_64-efi platform.
在这里尝试终端方法,单独引导分区的说明有点模糊,但这是我的解释:
ubuntu@ubuntu:~$ sudo mkdir /mnt/ubuntu
ubuntu@ubuntu:~$ sudo mkdir /mnt/ubuntu/boot
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/ubuntu/boot
ubuntu@ubuntu:~$ sudo grub-install --boot-directory=/mnt/ubuntu/boot /dev/sda
Installing for i386-pc platform.
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: error: will not proceed with blocklists.
ubuntu@ubuntu:~$ sudo umount /mnt/ubuntu/boot
ubuntu@ubuntu:~$ sudo mount /dev/sda2 /mnt
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev && sudo mount --bind /dev/pts /mnt/dev/pts && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# grub-install /dev/sda
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
root@ubuntu:/# exit
exit
ubuntu@ubuntu:~$ sudo umount /mnt/sys && sudo umount /mnt/proc && sudo umount /mnt/dev/pts && sudo umount /mnt/dev && sudo umount /mnt
用 sda1 再试一次。
ubuntu@ubuntu:~$ sudo mount /dev/sda2 /mnt
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/boot
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev && sudo mount --bind /dev/pts /mnt/dev/pts && sudo mount --bind /proc /mnt/proc && sudo mount --bind /sys /mnt/sys
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# grub-install /dev/sda
Installing for x86_64-efi platform.
grub-install: error: cannot find EFI directory.
root@ubuntu:/# exit
exit
ubuntu@ubuntu:~$ sudo umount /mnt/sys && sudo umount /mnt/proc && sudo umount /mnt/dev/pts && sudo umount /mnt/dev && sudo umount /mnt/boot && sudo umount /mnt
再来一张。
ubuntu@ubuntu:~$ sudo mount /dev/sda2 /mnt
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/boot
ubuntu@ubuntu:~$ sudo mkdir -p /mnt/boot/efi
ubuntu@ubuntu:~$ sudo mount /dev/sda1 /mnt/boot/efi
ubuntu@ubuntu:~$ sudo mount --bind /dev /mnt/dev
ubuntu@ubuntu:~$ sudo mount --bind /proc /mnt/proc
ubuntu@ubuntu:~$ sudo mount --bind /sys /mnt/sys
ubuntu@ubuntu:~$ sudo chroot /mnt
root@ubuntu:/# apt-get install grub-efi-amd64
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
root@ubuntu:/# sudo dpkg --configure -a
Setting up grub-efi-amd64-signed (1.93+2.02-2ubuntu8) ...
Installing for x86_64-efi platform.
grub-install: error: efibootmgr failed to register the boot entry: Unknown error -1.
dpkg: error processing package grub-efi-amd64-signed (--configure):
installed grub-efi-amd64-signed package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
grub-efi-amd64-signed
root@ubuntu:/# exit
exit
ubuntu@ubuntu:~$ sudo umount /mnt/dev
ubuntu@ubuntu:~$ sudo umount /mnt/proc
ubuntu@ubuntu:~$ sudo umount /mnt/sys
ubuntu@ubuntu:~$ sudo umount /mnt/boot/efi
ubuntu@ubuntu:~$ sudo umount /mnt/boot
ubuntu@ubuntu:~$ sudo umount /mnt
解决方案很简单:更改 BIOS 设置:引导模式为传统支持,引导优先级为传统优先。然后重新安装Ubuntu,它工作。
我建议使用 debootstrap 手动安装。
从 USB 驱动器或救援光盘启动,然后运行:
找出硬盘的 ID,始终使用 ID 而不是 sda、sdb 等。
使用 fdisk 删除旧分区并创建新分区(在 Google 上搜索 Linux 分区方案)
将根分区挂载到 /mnt
安装操作系统:(下载最新的debootstrap)
chroot 进入操作系统:
安装文本编辑器:
编辑 /etc/apt/sources.list 并添加:
设置键盘语言和区域设置:
安装 Ubuntu:
设置密码:
安装 GRUB:将 GRUB 安装到磁盘,而不是分区!
(暂时不要安装 grub)
编辑 /etc/default/grub
然后运行:
如果你也有更多的 HDD 安装 grub!
应该说:
现在是重新启动的时间:
reboot -f (如果它不想重新启动)
您现在有望在一个最小的 Ubuntu 中。
从那里你想配置交换并安装你想要的所有程序。并安装一个 sudo 用户,这样您就不会以 root 身份运行。