首先我必须说我对这个话题一无所知。我所做的只是按照互联网上的教程进行操作,所以请原谅我的无知。说了这么多,让我们开始讨论问题吧。
大约半年前,我在一个 160GB 的硬盘上安装了 Linux Mint 19.2,以便随身携带并在需要时在不同的 PC 上使用。直到上周我才遇到问题。现在我已经将这个硬盘用于三台不同的笔记本电脑:一台装有 Windows 10 的 Xiomi、一台联想和一台宏碁(这两台装有 Windows 7),运行良好。我目前正在使用宏碁,因为我不再能使用另外两台。这台笔记本电脑的信息将在问题末尾给出。
这个问题是在我买了一台新笔记本电脑(Acer Aspire 3)时出现的,我试图在其上运行硬盘,但 BIOS 甚至没有检测到它。我问了一个问题(链接:https://unix.stackexchange.com/questions/582106/how-to-boot-acer-aspire-3-from-external-drive-with-lunix,在这里您还将看到此笔记本电脑的 bios 上显示的所有信息)并决定格式化驱动器并重新安装 linux mint(现在是 19.3)并将其创建为 FAT32。以下是有关新分区的一些信息:
samuel@samuel:~$ sudo fdisk -l
[sudo] password for samuel:
Disk /dev/sda: 149,1 GiB, 160041885696 bytes, 312581808 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x4b474b46
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1118207 1116160 545M ef EFI (FAT-12/16/32)
/dev/sda2 1118208 40179711 39061504 18,6G 83 Linux
/dev/sda3 40179712 296038399 255858688 122G 83 Linux
/dev/sda4 296038400 312580095 16541696 7,9G 82 Linux swap / Solaris
Disk /dev/sdb: 59,2 GiB, 63577260032 bytes, 124174336 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc788203a
Device Boot Start End Sectors Size Id Type
/dev/sdb1 * 2048 67110911 67108864 32G c W95 FAT32 (LBA)
samuel@samuel:~$
samuel@samuel:~$ sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 149,1G 0 disk
├─sda1 8:1 0 545M 0 part /boot/efi
├─sda2 8:2 0 18,6G 0 part /
├─sda3 8:3 0 122G 0 part /home
└─sda4 8:4 0 7,9G 0 part [SWAP]
sdb 8:16 1 59,2G 0 disk
└─sdb1 8:17 1 32G 0 part /media/samuel/MULTIBOOT
samuel@samuel:~$
这解决了问题,它在新的 Acer 上完美运行。现在的问题是我无法在旧笔记本电脑上运行它 xD 我猜问题与新笔记本电脑相同:启动类型......?如果新 bios 在 UEFI 上运行,也许这个是 LEGACY......?我不知道。当我尝试运行它时,我得到了
error: unknown filesystem.
entering rescue mode...
我调查了一些关于这个错误并找到了这个教程:https://www.easytechguides.com/error-unknown-filesystem-grub-rescue.html。我试着跟着它。使用 ls 命令出现的分区及其文件系统类型显示在下图中。
正如您所见,我不明白教程中应该说的内容(easytechguides 链接的第 4 点)。我还是尝试继续。当我转到时,得到了与第 4 点类似的结果ls /
。另一张此时屏幕的图片如下:
从最后一张图片中可以看出,我也进入了/boot
目录,然后/boot/grub
查看。但我不知道如何继续。我猜这msdos2
是根分区(sda2
如上所示)。我真的不明白这里发生了什么。这就是我现在所处的位置。
我的问题是:是否可以在两台电脑上运行 HDD?如果可以,我该怎么做?
我在这里保留了旧笔记本电脑的所有 BIOS 显示(您可以在该问题的第一个链接中找到新笔记本电脑的 BIOS 显示)。
当然,如果您需要更多信息,请提出要求。
先感谢您!
答案1
据我所知,您在旧版 (MBR) 和新版 (UEFI) 启动之间存在兼容性问题。如果您的新笔记本电脑不支持旧版启动,恐怕没有简单的解决方法。简而言之:虽然旧版启动依赖于引导扇区中的引导加载程序,它会读取并执行从硬盘驱动器上的特定位置开始的程序(LILO 就是这样做的,GRUB v.2 更智能一些,并且知道特定分区中的文件,您只需启用处理特定文件系统的模块),但 UEFI 不需要引导扇区。它需要特定的文件系统 (FAT32) 并在 EFI 分区中查找具有特定名称的文件。文件名可以从操作系统或 BIOS 本身控制。理论上两者可以共存 - 您可以拥有一个从 EFI 分区引导文件的传统引导加载程序 (GRUB)。确保您具有以下内容:
- UEFI 需要 GPT 分区系统,您不能有旧的 MBR 样式分区,否则您的新笔记本电脑将无法启动
- GRUB 需要理解并支持 FAT32 文件系统,以便它可以在 EFI 分区(需要格式化为 FAT32)上找到内核
- 我猜你的旧 BIOS 至少需要一个可启动的 MBR 分区,所以你可能需要启用向后兼容性,有时在 fdisk/gdisk 中称为混合 GPT/MBR 模式。
- 然后 - 这将是配置 GRUB 以从 EFI 运行内核并将其安装在引导扇区中的问题。
我以前从来没有做过这样的事,所以我会祈祷一切顺利:)