当我从实时 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
这非常简单:
- 将 GRUB4DOS 设置为从 ISO 启动(您可能已经这样做了)
- 当 Ubuntu 安装程序抱怨没有 CD-ROM 时,选择转到 shell 控制台选项,
使用如下一组命令:
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
- 返回安装程序并享受
希望它能对某人有所帮助...我花了很多时间寻找这个解决方案,直到最终自己找到了它。
答案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 菜单等。
这是一个法国项目,但这里有英文说明。