如何为两台不同的 PC 创建可启动的 Linux 硬盘?

如何为两台不同的 PC 创建可启动的 Linux 硬盘?

首先我必须说我对这个话题一无所知。我所做的只是按照互联网上的教程进行操作,所以请原谅我的无知。说了这么多,让我们开始讨论问题吧。

大约半年前,我在一个 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 命令出现的分区及其文件系统类型显示在下图中。

Grub 救援模式。

正如您所见,我不明白教程中应该说的内容(easytechguides 链接的第 4 点)。我还是尝试继续。当我转到时,得到了与第 4 点类似的结果ls /。另一张此时屏幕的图片如下:

msdos2

从最后一张图片中可以看出,我也进入了/boot目录,然后/boot/grub查看。但我不知道如何继续。我猜这msdos2是根分区(sda2如上所示)。我真的不明白这里发生了什么。这就是我现在所处的位置。

我的问题是:是否可以在两台电脑上运行 HDD?如果可以,我该怎么做?

我在这里保留了旧笔记本电脑的所有 BIOS 显示(您可以在该问题的第一个链接中找到新笔记本电脑的 BIOS 显示)。

旧Acer信息(BIOS)

主要的

安全

引导

当然,如果您需要更多信息,请提出要求。

先感谢您!

答案1

据我所知,您在旧版 (MBR) 和新版 (UEFI) 启动之间存在兼容性问题。如果您的新笔记本电脑不支持旧版启动,恐怕没有简单的解决方法。简而言之:虽然旧版启动依赖于引导扇区中的引导加载程序,它会读取并执行从硬盘驱动器上的特定位置开始的程序(LILO 就是这样做的,GRUB v.2 更智能一些,并且知道特定分区中的文件,您只需启用处理特定文件系统的模块),但 UEFI 不需要引导扇区。它需要特定的文件系统 (FAT32) 并在 EFI 分区中查找具有特定名称的文件。文件名可以从操作系统或 BIOS 本身控制。理论上两者可以共存 - 您可以拥有一个从 EFI 分区引导文件的传统引导加载程序 (GRUB)。确保您具有以下内容:

  1. UEFI 需要 GPT 分区系统,您不能有旧的 MBR 样式分区,否则您的新笔记本电脑将无法启动
  2. GRUB 需要理解并支持 FAT32 文件系统,以便它可以在 EFI 分区(需要格式化为 FAT32)上找到内核
  3. 我猜你的旧 BIOS 至少需要一个可启动的 MBR 分区,所以你可能需要启用向后兼容性,有时在 fdisk/gdisk 中称为混合 GPT/MBR 模式。
  4. 然后 - 这将是配置 GRUB 以从 EFI 运行内核并将其安装在引导扇区中的问题。

我以前从来没有做过这样的事,所以我会祈祷一切顺利:)

相关内容