从安装 CD 的 ISO 安装 Debian,无需刻录 CD 或使用 USB 驱动器

从安装 CD 的 ISO 安装 Debian,无需刻录 CD 或使用 USB 驱动器

我想将 Debian 安装到我电脑的一个空分区。该电脑已在另一个分区上运行 Debian,并安装了 GRUB2。我从这里。然后我将其复制到/data并添加菜单项到grub.cfg

menuentry "Debian install image" {
    set isofile="/data/debian-testing-amd64-netinst.iso"
    loopback loop (hd0,2)$isofile
    echo "Starting $isofile..."
    linux (loop)/install.amd/vmlinuz findiso=$isofile priority=low vga=788 ---
    initrd (loop)/install.amd/initrd.gz
}

这将启动安装程序,一切似乎都很好。不幸的是,无法检测到 CDROM。我搜索并发现几个线程建议我需要将 CD 的内容安装到/cdrom,但如果我切换到新的控制台ATL + F2并尝试安装任何内容,它要么说invalid argument或类似的东西。我仔细检查了一下/dev,硬盘特殊文件都在那里(sdasda1,...)。我尝试了 10 个不同的指南,但都没有用。

  1. 我需要做什么才能继续安装?
  2. 在没有物理 CDROM 驱动器或 USB 拇指驱动器的情况下我还需要安装哪些其他选项?

我确信某处有一份实用指南,但我就是找不到。请告诉我其中一份。

答案1

这是对第二点的回答:如果你有 Debian 并且想在其他地方安装 Debian,只需安装软件包 debootstrap。摘自其手册页:

Debootstrap can be used to install Debian in a system without using an
installation disk but can also be used to run a different Debian flavor
in  a  chroot  environment.

只需将您的安装分区挂载到/mnt并尝试:debootstrap stretch /mnt

最后您可能还必须对 GRUB 进行一些调整以实现双重启动。

对于您的第一点:安装 CD 启动时(根据介质使用 el torito 或 grub)只包含最少的 ramdisk 映像,这比整个 CD 映像小得多。它缺少除最关键的内核模块之外的任何模块。它确实缺少 ext4(或 btrfs...),也缺少 loop(用于挂载文件映像)。因此,您遇到了一个先有鸡还是先有蛋的问题:要挂载包含那些缺失的内核模块的 CD(映像),您需要那些缺失的内核模块。

可以将 CD 映像直接放入分区(无文件系统),然后调整 GRUB 以从中启动。安装应该可以检测到 CD(映像)。

或者将其放在 vfat 文件系统上,因为 vfat 恰好存在于初始启动映像中(但不存在于 ext4、btrfs 等)。然后从 CD 映像本身(安装前)或从 ftp.debian.org/debian 检索缺失的 loop-modules .udeb 文件,并将其也放在 vfat 文件系统上。文件的路径应该是这样的:

/pool/main/l/linux-signed/loop-modules-4.7.0-1-amd64-di_4.7.6-1_amd64.udeb

当然,确切的 udeb 名称会随着时间而改变。

更新:还提到hd-media initrd.gz 映像直接包含所有需要的模块(包括 loop、ext4……)。它是一个压缩的 cpio 映像,因此甚至可以在启动时使用 busybox,它可以处理 gunzip 和 cpio(cd / && gunzip < /path/to/initrd.gz | cpio -i),并且比 udpkg 更快。

然后从 ALT+F2 控制台,您可以挂载您的 vfat 分区(mount -t vfat /dev/sdX /mnt),用于udpkg -i“安装”安装 .udeb,modprobe loop 现在安装应该可以工作了(菜单:检测并挂载 CDROM,如果之前失败了),或者如果没有,您可以尝试挂载它mkdir -p /cdrom; mount -o ro,loop -t iso9660 /mnt/debian-testing-amd64-netinst.iso /cdrom并希望获得最好的结果。

相关内容