为什么另一台机器无法在具有 EFI 和 Ubuntu 的同一磁盘上启动?

为什么另一台机器无法在具有 EFI 和 Ubuntu 的同一磁盘上启动?

我有一个外部硬盘,其中包含一个 EFI 系统分区、一个 Ubuntu 20.10 分区和一些其他分区,包括 Mac OS X,因此它可以作为双启动。

我有两台 Macbook Pro:2009 年版 v 5.5 Intel Core 2 Duo RAM 8G 和 2011 年版 v8.1 Intel Core i5 RAM 16G。它们中的任何一台都可以运行相同的二进制文件和 Mac OS X El Capitan。

当谈到 Ubuntu 时,两台机器的开始都很类似:在固件菜单中,我选择硬盘 EFI 系统分区,然后出现 GRUB 菜单,长长的消息列表,包括欢迎使用 Ubuntu 20.10。

然而,旧机器出现故障

[ TIME ] Timed out waiting for device /dev/disk/by-uuid/71E2-6200

看照片:附图

71E2-6200 是 EFI 系统分区的 UUID。

我还在下面几行看到了这一点:

[  103.625925] blk_update_request: I/O error, dev sdb, sector 6368 op 0x0:(READ) flags 0x8

其中扇区号可以改变。

在EFI系统分区和Ubuntu分区上运行fsck都没有问题。

你知道为什么旧机器失败而新机器却成功吗?

获得的信息(在新机器上启动后):

mac2011-linux% cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda4 during installation
UUID=1ce2a9e1-0d15-4c20-9f53-32fc9c47b525 /               ext4    errors=remount-ro 0       1
# /boot/efi was on /dev/sda1 during installation
#UUID=71E2-6200  /boot/efi       vfat    umask=0077      0       1
/swapfile                                 none            swap    sw              0       0
# for NFS
/home/alba    /export/alba   none    bind  0  0
# /dev/disk/by-label/EFI /mnt/EFI auto nosuid,nodev,nofail,noauto,x-gvfs-show 0 0
#UUID=71E2-6200  /boot/efi       vfat    defaults      0       1
#UUID=71E2-6200  /boot/efi       vfat    defaults      0       1
UUID=71E2-6200  /boot/efi       vfat    defaults      0       1
mac2011-linux% sudo blkid
[sudo] password for alba: 
/dev/sdb4: LABEL="Ubuntu backup" UUID="1ce2a9e1-0d15-4c20-9f53-32fc9c47b525" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Ubuntu backup" PARTUUID="98872d9f-9d11-4c9e-8acb-fb1d0c0ccb9a"
/dev/loop0: TYPE="squashfs"
/dev/loop1: TYPE="squashfs"
/dev/loop2: TYPE="squashfs"
/dev/loop3: TYPE="squashfs"
/dev/loop4: TYPE="squashfs"
/dev/loop5: TYPE="squashfs"
/dev/loop6: TYPE="squashfs"
/dev/loop7: TYPE="squashfs"
/dev/sda1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="67E3-17ED" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="05bdacf6-78ff-451d-8c4d-bb812fd68e83"
/dev/sda2: UUID="0492d65c-8b14-356a-9d3d-337f44e8d58a" BLOCK_SIZE="4096" LABEL="SSD 1T" TYPE="hfsplus" PARTLABEL="MacOS_El_Capitan" PARTUUID="10b29023-d982-4be8-8ceb-226c04893a8b"
/dev/sda3: UUID="87867aee-1d5c-3c9e-ae36-8d2df5c162f1" BLOCK_SIZE="4096" LABEL="Recovery HD" TYPE="hfsplus" PARTLABEL="Recovery HD" PARTUUID="895fd6af-7b68-4873-bec1-6dc154aece4f"
/dev/sda4: LABEL="Ubuntu" UUID="dc68435c-f80c-4beb-a09b-69015ad516e6" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Ubuntu" PARTUUID="4c1d9c0a-978e-46fd-9ae0-b49c6ed27037"
/dev/sdb1: LABEL_FATBOOT="EFI" LABEL="EFI" UUID="71E2-6200" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="2c99fbe4-96f8-465b-b528-d03c40083bd7"
/dev/sdb2: UUID="e490c4f5-2f3d-3996-8db7-6e45050c8636" BLOCK_SIZE="4096" LABEL="El Capitan" TYPE="hfsplus" PARTLABEL="HGST 1 TB" PARTUUID="1a198393-f3db-4c36-bfed-7a07e4c43520"
/dev/sdb3: UUID="47af6fd5-545e-3b2b-a9f9-f537efe3354b" BLOCK_SIZE="4096" LABEL="Recovery HD" TYPE="hfsplus" PARTLABEL="Recovery HD" PARTUUID="d00d1e40-ec70-4cc7-a97a-3f29a763011e"
/dev/loop8: TYPE="squashfs"
/dev/loop9: TYPE="squashfs"
/dev/loop10: TYPE="squashfs"
/dev/loop11: TYPE="squashfs"
/dev/loop12: TYPE="squashfs"
/dev/loop13: TYPE="squashfs"
/dev/loop14: TYPE="squashfs"
/dev/loop15: TYPE="squashfs"
/dev/loop16: TYPE="squashfs"
/dev/loop17: TYPE="squashfs"
/dev/loop18: TYPE="squashfs"

journalctl我有启动和非启动情况下的输出。

非启动情况下值得注意的几行:

Apr 24 19:38:28 mac2011-linux kernel: ACPI: BIOS bug: multiple APIC/MADT found, using 0

Apr 24 19:38:28 mac2011-linux kernel: PCI: MMCONFIG for 0000 [bus00-3f] at [mem 0xf0000000-0xf3ffffff] (base 0xf0000000) (size reduced!)
Apr 24 19:38:28 mac2011-linux kernel: PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug

Apr 24 19:38:28 mac2011-linux kernel: tsc: Marking TSC unstable due to clocksource watchdog
Apr 24 19:38:28 mac2011-linux kernel: TSC found unstable after boot, most likely due to broken BIOS. Use 'tsc=unstable'.
Apr 24 19:38:28 mac2011-linux kernel: sched_clock: Marking unstable (1164224651, 840043)<-(1171542672, -6477987)

Apr 24 19:38:28 mac2011-linux kernel: Unstable clock detected, switching default tracing clock to "global"
                                      If you want to keep using the local clock, then add:
                                        "trace_clock=local"
                                      on the kernel command line

Apr 24 19:38:28 mac2011-linux blkmapd[290]: open pipe file /run/rpc_pipefs/nfs/blocklayout failed: No such file or directory

blkmapd与 NFS 相关。blkmapd也是启动情况的日志,因此不会导致无法启动。 也一样use "pci=nocrs" and report a bug

旧机器:

Apr 24 19:38:28 mac2011-linux kernel: DMI: Apple Inc. MacBookPro5,5/Mac-F2268AC8, BIOS    MBP55.88Z.00AC.B03.0906151708 06/15/09

00AC.B03已是最新。

较新的机器:

Apr 24 19:42:40 mac2011-linux kernel: DMI: Apple Inc. MacBookPro8,1/Mac-94245B3640C91C81, BIOS    MBP81.88Z.0050.B00.1804101331 04/10/18

Ubuntu 20.04LTS 实时安装程序可在旧机器 USB 上运行。这表明旧机器与 Ubuntu 20.04LTS 兼容。

我有一个硬盘的 SSD 克隆。SSD 克隆的行为类似,尽管一些启动消息不同。这表明问题的原因不是磁盘损坏。

还有其他想法吗?

答案1

为了通过 USB 启动装有 Ubuntu 20.04LTS 的旧机器,我在 USB 读卡器中使用了一张微型 SD 卡。直到我断开了内部 SSD 连接,我才在 Mac 启动菜单中看到它。

我还例行修改了外部硬盘(用于备份)的几个文件,并再次尝试在新机器上启动。只有在手动运行 fsck 后才有效。

我再次尝试在外部硬盘上启动旧机器,内部 SSD 仍然断开连接,一切正常。重新连接内部 SSD 后,它不起作用。

我有一个硬盘的 SSD 克隆。SSD 克隆的行为类似,尽管一些启动消息不同。这表明问题的原因不是磁盘损坏。

我再次尝试克隆,结果一模一样。这证实文件系统损坏只是一个意外。

所以这一切可以归结为旧款 Macbook pro 5,5 需要断开内部设备,而新款则不需要

在 Ubuntu 中/boot/grub/grub.cfg,GRUB 始终配置为查找hd0实际的起始设备号(通常 >= 1)。我尝试用 替换hd0hd1因为已经在 中/boot/efi/EFI/ubuntu/grub.cfg),但这没有帮助。

Macbook pro 5,5 没有更新的固件可用。

相关内容