从 USB 安装 Ubuntu 10.10 服务器(使用 GRUB4DOS)

从 USB 安装 Ubuntu 10.10 服务器(使用 GRUB4DOS)

当我从实时 USB 启动时,安装 Ubuntu 桌面没有遇到任何问题,但服务器版本却给我带来了一些麻烦。我认为这与 GRUB 处理驱动程序的方式有关。当服务器安装程序尝试从 CD 中查找时,它找不到它。

我使用以下命令来加载它:

find --set-root /ISO/ubuntu-10.10-server-i386.iso
map /ISO/ubuntu-10.10-server-i386.iso (0xff)
map --hook
root (0xff)
kernel /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed boot=install iso-scan/filename=/ISO/ubuntu-10.10-server-i386.iso splash
initrd /install/initrd.gz

有什么办法可以将 ISO 的位置​​传递给 Ubuntu?

编辑:GRUB4DOS 从 USB 运行,而不是 HD 运行。

答案1

这非常简单:

  1. 将 GRUB4DOS 设置为从 ISO 启动(您可能已经这样做了)
  2. 当 Ubuntu 安装程序抱怨没有 CD-ROM 时,选择转到 shell 控制台选项,
  3. 使用如下一组命令:

    mkdir /mnt/tmp
    mount /dev/<your USB dev path here, probably sdb1 if you have 1 HDD> ~/mnt/tmp
    mount -o loop -t iso9660 <path to ISO on your USB> /cdrom
    exit
    
  4. 返回安装程序并享受

希望它能对某人有所帮助...我花了很多时间寻找这个解决方案,直到最终自己找到了它。

答案2

我刚刚使用 Vaxquis 的技巧在 USB 上通过 grub4dos 安装了 ubuntu 12.04 服务器。显然,服务器版本不支持安装程序中的 cdrom-detect 和 iso-scan。所以我们可以忽略那部分。这是我的配置:

title install Ubuntu server 12.04
find --set-root /ubuntu-12.04-server-i386.iso
map /ubuntu-12.04-server-i386.iso (0xff) || map --mem /ubuntu-12.04-server-i386.iso (0xff)
map --hook
rootnoverify (0xff)
kernel /install/vmlinuz file=/cdrom/preseed/ubuntu-server.seed boot=install splash --
initrd /install/initrd.gz
boot

当您收到 CD-ROM 检测错误时,只需“继续”两次返回安装程序主菜单。按 ALT-F2 进入控制台。输入:

mkdir /mnt/tmp
mount /dev/sdb1 /mnt/tmp
mount -o loop -t iso9660 /mnt/tmp/ubuntu-12.04-server-i386.iso /cdrom

按 ALT-F1 返回安装程序。继续“从 CD 加载安装程序组件”

注意:您可以使用 file=/cdrom/preseed/ubuntu-server-minimal.seed 安装较小的服务器,或者删除整个“file=...”部分以手动选择组件。如果您没有足够的内存将整个 iso 加载到内存中,请从配置中删除“|| map --mem /ubuntu-12.04-server-i386.iso (0xff)”。为了避免“错误 60”,最好使用“mkfs.vfat”格式化 USB(例如 mkfs.vfat /dev/sdc1),然后将 iso 文件作为第一个文件复制到其中。然后将 bootlace.com、grldr[.mbr] 和 menu.lst 复制到 USB 并运行

./bootlace.com /dev/<your_usb_device> (e.g. /dev/sdc)

答案3

你有没有尝试过在 USB 上安装 Grub并告诉它从你的 ISO 启动?我不确定服务器版本,但我一直在使用和安装 Ubuntu 桌面。

编辑:我刚刚试过这个,但不起作用。我把答案留在这里只是为了跟踪事情。请不要给我差评 ;)

这是我的 USB 上的 /boot/grub/grub.cfg 中的条目

menuentry "ubuntu-10.04-desktop-amd64.iso" {
 loopback loop /ubuntu-10.04-desktop-i386.iso
 linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-desktop-i386.iso
 initrd (loop)/casper/initrd.lz
}

答案4

手动处理起来很麻烦。我最近才发现 Ubuntu 的 Multiboot USB,它工作得很好。你可以将 ISO 输入其中,它会负责创建 syslinux 菜单等。

这是一个法国项目,但这里有英文说明。

相关内容