网站搜索

如何从硬盘运行任何 Linux 发行版


大多数 Linux 发行版都提供 ISO 文件,这些文件设计和构建为直接从可启动媒体(例如 CD /DVD实时模式运行) >闪存/USB卡,甚至使用Linux Grub菜单直接从硬盘,无需将其刻录到CD/DVD 或使用 USB 创建工具创建可启动 USB。

本教程将重点介绍一种通过编辑 Ubuntu 22.04 GRUB2(适用于 Ubuntu 20.04)直接从硬盘运行某些 Linux ISO 发行版的方法。 > 或更早版本)菜单,这是大多数现代 Linux 发行版中的默认引导加载程序。

从硬盘运行操作系统提供了一种更快的 Linux 使用方式,而且对隐私也有很大影响,因为默认情况下不会保留所有设置和实时会话。

本主题中介绍的发行版是 Rocky LinuxFedoraKali LinuxArch Linux 和 Gentoo Live DVD。

要求

新安装的 Ubuntu 22.04(或带有 GRUB2 引导加载程序的任何其他 Linux 发行版)位于系统的硬盘上。

第 1 步:下载 Linux Live ISO 文件

1. 要能够启动并运行任何 Linux 发行版而不将它们安装到硬盘上,请确保下载每个 Linux ISO 映像的“Live CD/DVD”版本。

  • 下载 Rocky Linux Live ISO 映像
  • 下载 Fedora Live ISO 镜像
  • 下载 Kali Linux Live ISO 镜像
  • 下载 Arch Linux Live ISO 镜像
  • 下载 Gentoo Linux Live ISO 镜像

步骤 2:将 ISO 映像添加到目录中

2. 下载您喜爱的 Linux ISO Live DVD 映像后,使用“sudo nautilus<”以 root 权限打开 Ubuntu Nautilus' 命令,并在系统根路径中创建一个名为 live 的目录,并将 ISO 文件移动到该文件夹。

sudo nautilus

步骤3:查找磁盘分区UUID

3. 要进一步继续,需要为 Grub2 提供我们的磁盘分区 UUID通用唯一标识符(分区ISO 文件所在的位置)。

要获取分区 UUID,请运行以下 blkid 命令。

sudo blkid

对于系统启动时自动安装的分区或硬盘,请运行以下 cat 命令。

sudo cat /etc/fstab   

4. 获取分区 UUID 的另一种方法是打开并可视化位于 /boot/grub/ 路径中的 grub.cfg 文件内容,然后搜索 --fs-uuid 字符串(如果您没有 /boot 的单独分区)。

步骤 4:将 ISO 映像添加到 GRUB2 菜单

5.获取根分区UUID代码后移动到/etc/grub.d/目录,打开40_custom 文件进行编辑,并在该文件的底部添加以下行。

menuentry 'Rocky Linux Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/Rocky-9.3-x86_64-minimal.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                set root=(hd0,3)
                search --no-floppy --fs-uuid --set=root 51567f31-1236-49b4-8c4a-bf8cb84856e0
                linux /live/Rocky-9.3-x86_64-minimal/isolinux/vmlinuz noconfig=sudo username=root hostname=tecmint
                initrd /live/Rocky-9.3-x86_64-minimal/isolinux/initrd.img
}

这里以下指令代表:

  • set isofile=保存 ISO 系统路径位置的变量。
  • (hd0,msdos1)=第一个硬盘的第一个分区(在 Linux 中,磁盘编号从 0 开始) – 与 /dev/sda3 相同。
  • –fs-uuid –set=root 51567f31-1236-49b4-8c4a-bf8cb84856e0=第一个硬盘 UUID 代码的第一个分区。
  • linux 和 initrd=自定义内核启动参数 – 它们根据每个 Linux 发行版而有所不同。

6. 完成文件编辑后,update-grub 将新的 ISO(在本例中为 Rocky Linux)添加到 Grub2 菜单中。

sudo update-grub

要验证它,请打开 /boot/grub/grub.cfg 并在底部搜索您的 ISO 条目。

第 5 步:从硬盘运行 Rocky Linux ISO

7.要运行Rocky Linux Live ISO,请重新启动计算机,从 GRUB 菜单中选择Rocky Linux条目,然后按Enter 键。

以同样的方式,您可以将其他 Linux Live ISO 发行版映像添加到 GRUB2 菜单,如图所示。再次打开并编辑 /etc/grub.d/40_custom grub 文件并添加以下条目。

对于 Fedora Live DVD

menuentry 'Fedora Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/Fedora-Workstation-Live-x86_64-39-1.5.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop (hd0,msdos1)$isofile      
                search --no-floppy --fs-uuid --set=root 3b87d941-8ee7-4312-98fc-1f26828d62ab                            
                linux (loop)/isolinux/vmlinuz boot=live fromiso=/dev/sda1/$isofile noconfig=sudo username=root hostname=fedora
                initrd (loop)/isolinux/initrd.img
}

对于 Kali Linux Live DVD

menuentry 'Kali Linux Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/kali-linux-2023.3-installer-amd64.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop (hd0,msdos1)$isofile      
                search --no-floppy --fs-uuid --set=root 3b87d941-8ee7-4312-98fc-1f26828d62ab                            
                linux (loop)/live/vmlinuz boot=live fromiso=/dev/sda1/$isofile noconfig=sudo username=root hostname=kalilinux
                initrd (loop)/live/initrd.img
}

对于 Gentoo Live DVD

menuentry 'Gentoo Linux Live' --class os --class gnu-linux --class gnu --class os --group group_main {
                set isofile="/live/archlinux-2023.11.01-x86_64.iso"

         insmod ext2
         insmod loopback
         insmod iso9660      
                loopback loop (hd0,msdos1)$isofile      
                search --no-floppy --fs-uuid --set=root 3b87d941-8ee7-4312-98fc-1f26828d62ab                            
                linux (loop)/live/vmlinuz boot=live fromiso=/dev/sda1/$isofile noconfig=sudo username=root hostname=gentoo
                initrd (loop)/live/initrd.img
}

8. 然后再次更新 GRUB 菜单,重新启动计算机,并从 GRUB 菜单中选择您首选的 Linux 发行版 ISO。

sudo update-grub

9. 如果您的 root 分区上没有足够的可用空间来托管其他 Linux ISO 文件,您可以添加另一个硬盘并移动所有 Linux 发行版 ISO 文件那里。创建分区并添加文件系统后,将其挂载到 /mnt 路径上以使其可用。

sudo mount /dev/sdb1 /mnt

10.然后移动新硬盘上的所有ISO并使用blkid命令获取其UUID。

sudo blkid

11. 再次打开并编辑 /etc/grub.d/40_custom grub 文件,然后使用以下命令将其他 Linux Live ISO 发行版映像添加到 GRUB2 菜单中相同的过程,但要注意每个发行版 Live Kernel 启动参数,这些参数可以通过使用 mount -o Loop 选项安装 ISO 映像来检查或查阅发行版 Wiki 页面。