Linux debian live USB,使用GRUB2直接从硬盘驱动器启动Debian 9 ISO文件的方法

本文介绍使用GRUB2引导加载程序直接从硬盘驱动器启动Debian 9 ISO文件的方法,这样就不必创建Live CD或实时USB,现在创建Linux Live USB非常容易,可以使用图形工具或命令行来完成。但是,如果你没有USB闪存驱动器或者你想将Debian安装到你的USB闪存盘怎么办?本文为你提供解决方案。GRUB2引导加载程序能够直接从您的硬盘驱动器引导Linux ISO映像文件,GRUB2支持许多文件系统,包括但不限于ext4、HFS+和NTFS,这意味着你可以将ISO文件放在任何这些文件系统上,GRUB2还可以直接从LVM和RAID设备读取文件,GRUB2也有网络支持,你可以使用TFTP协议从网络加载操作系统映像。

使用GRUB2直接从硬盘驱动器启动Debian 9 ISO文件

首先,启动计算机并启动现有的Linux发行版,下载Debian 9 ISO(Debian 9.8发布下载,附加强安全性能及修复BUG更新说明),可以使用netinstall ISO或live CD ISO,还需要下载hd-media/initrd.gz和hd-media/vmlinuz,下载地址:http://http.us.debian.org/debian/dists/stretch/main/installer-amd64/current/images/hd-media/,其中initrd.gz是最初的ramdisk,vmlinuz是Linux内核。

如果你想要一个允许你使用鼠标单击的图形安装程序,请改为下载hd-media/gtk/initrd.gz和hd-media/gtk/vmlinuz,将这三个文件放在同一目录中,接下来,打开终端窗口并使用文本编辑器(如nano)编辑/etc/grub.d/40_custom文件:

sudo nano /etc/grub.d/40_custom

在此文件中,我们可以将自定义条目添加到GRUB引导菜单,在这种情况下,我们想要添加一个条目来引导Debian 9 ISO文件,以下是一个例子,如果使用Debian 9.8则改成Debian 9.8 net-install.iso:

menuentry "Debian 9.4 net-install.iso" {

insmod ext2

set root='(hd0,2)'

linux /linuxbabe/vmlinuz

initrd /linuxbabe/initrd.gz

}

55cfa4fba4e22c9c3235160b363fa54a.png

说明:

1、menuentry:此条目将显示在GRUB2启动菜单上,可以随意命名。

2、insmod命令插入一个模块,由于这三个文件存储在我的主分区上,因此需要ext2模块,如果这些文件位于NTFS分区上,那么需要改为使用insmod ntfs。

3、set命令将我的第一个硬盘驱动器的第二个分区设置为根目录。(我的主分区是我的第一个硬盘的第二个分区。)

4、linux命令从指定的路径加载Linux内核,vmlinuz表示支持虚拟内存的压缩Linux内核可执行文件,字母'z'表示它已被压缩。

5、initrd命令从指定路径加载初始ramdisk,它只能在运行linux命令后使用,初始ramdisk是安装到RAM的最小根文件系统。

请注意,GRUB不区分IDE和SCSI,在Linux中,/dev/hda指的是第一个IDE硬盘驱动器,/dev/sda指的是第一个SCSI或SATA硬盘驱动器,如果使用NMVe SSD,则可能将其命名为/dev/nvme0n1,/dev/nvme1n1,依此类推。但在GRUB中,无论接口类型如何,第一个硬盘驱动器总是被称为hd0,另请注意,GRUB中的分区号从1开始,而不是0。

要检查分区号,可以在终端窗口中运行lsblk或sudo parted -l命令,你也可以在Gparted分区编辑器中看到它,可以通过输入以下命令来安装它:

sudo apt install gparted

在我的计算机上,vmlinuz,initrd.gz和Debian ISO映像存储在/home/linuxbabe/目录下,但我有一个单独的主分区,它在GRUB配置文件中设置为root,因此路径应该以/linuxbabe开头,不是/home/linuxbabe/。

保存并关闭文件,然后使用以下命令更新GRUB引导菜单:

sudo grub-mkconfig -o /boot/grub/grub.cfg

在Fedora上,运行命令是:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

在基于Debian的Linux发行版上,你可以使用以下命令更新GRUB引导菜单:

sudo update-grub

可以从输出中看到GRUB添加了一个新的菜单项(较新版本的GRUB不显示此消息):

167d08914867affd05d0100e59ebafb9.png

现在重新启动计算机,在GRUB引导菜单中,你可以看到刚刚添加的菜单条目,请注意,你可能需要按右Shift键才能在计算机重新启动时调出GRUB引导菜单:

b99012101a9a4e994ef0cae5144e33e1.png

选择它并按Enter键,Linux内核(vmlinuz)和初始RAM磁盘(intird.gz)将被加载到内存中,然后将从Debian ISO映像加载其他安装程序组件。

避免错误

你可能已使用以下代码从硬盘启动Ubuntu ISO,现在尝试使用与Debian 9 ISO相同的语法:

menuentry "ubuntu-16.04-desktop-amd64.iso" {

set isofile="/home/username/Downloads/ubuntu-16.04-desktop-amd64.iso"

loopback loop (hd0,1)/$isofile

linux (loop)/casper/vmlinuz.efi boot=casper iso-scan/filename=$isofile quiet noeject nopromt spalsh --

initrd (loop)/casper/initrd.lz

}

它不会起作用,如果你使用此语法,则在启动Debian ISO后将出现以下错误:

No common CD-ROM drive was detected.

或者:

No medium found containing a live file system.

原因是Ubuntu方法在ISO映像中使用Linux内核和初始ramdisk,但你必须使用hd-media/vmlinuz和hd-media/initrd.gz才能从硬盘启动Debian安装程序,Debian ISO映像是Debian安装程序所需的CD-ROM/介质。

一些其他提示

如果这三个文件位于磁盘分区的顶级目录中,则在指定vmlinuz和intird.gz的路径时不要忽略开头的斜杠,换句话说,你需要:

linux /vmlinuz

initrd /initrd.gz

而不是:

linux vmlinuz

initrd initrd.gz

如果这三个文件位于MBR磁盘的扩展分区上,则分区号从5开始,而不是1,例如,扩展分区内的第一个逻辑分区将编号为5,扩展分区内的第二个逻辑分区将编号为6。

如果你的计算机内部有SATA磁盘和NVMe SSD,则SATA磁盘是第一个,而NVMe SSD是第二个, USB驱动器和NVMe SSD也是如此。

相关主题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以通过以下步骤来永久禁止鼠标驱动进入 USB: 1. 打开终端,并以 root 权限执行以下命令: ``` sudo nano /etc/modprobe.d/blacklist.conf ``` 该命令将打开 /etc/modprobe.d/blacklist.conf 文件以进行编辑。 2. 在文件末尾添加以下行: ``` blacklist usbhid ``` 该命令将禁用 USB HID 驱动程序,这也将禁用所有 HID 设备,包括鼠标、键盘等。 3. 保存并关闭文件后,重启系统以使更改生效。 请注意,禁用 USB HID 驱动程序将禁用所有 HID 设备,包括键盘和鼠标。如果你只想禁用鼠标设备而不禁用键盘,可以考虑使用 udev 规则来实现。你可以编写一个 udev 规则来禁用指定的鼠标设备。具体方法为: 1. 打开终端,并以 root 权限执行以下命令: ``` sudo nano /etc/udev/rules.d/99-disable-mouse.rules ``` 该命令将打开 /etc/udev/rules.d/99-disable-mouse.rules 文件以进行编辑。 2. 在文件中添加以下行: ``` ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="鼠标名称", RUN+="/bin/sh -c 'echo -n \"disable\" > /sys$DEVPATH/device/power/wakeup'" ``` 其中,鼠标名称是你要禁用的鼠标设备的名称。 例如,如果你要禁用名为“Logitech USB Optical Mouse”的鼠标设备,可以将以下行添加到文件中: ``` ACTION=="add", SUBSYSTEM=="input", ATTR{name}=="Logitech USB Optical Mouse", RUN+="/bin/sh -c 'echo -n \"disable\" > /sys$DEVPATH/device/power/wakeup'" ``` 3. 保存并关闭文件后,重新加载 udev 规则: ``` sudo udevadm control --reload-rules ``` 4. 禁用鼠标设备后,你需要重新启动系统以使更改生效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值