我正在尝试创建一个可启动的USB镜像,以便在一台新电脑上安装Ubuntu。
之前我按照Ubuntu桌面版的"创建USB驱动器"指南做过这个,但现在我没有可用的Ubuntu桌面版。
我该如何只使用命令行来完成同样的操作?
我尝试过的方法:
在Mac OS X上按照ubuntu.com的“创建USB驱动器”说明创建可启动的USB:无法启动。usb-creator
:根据apt-cache search usb-creator
和维基百科,usb-creator只存在作为图形工具。
在help.ubuntu.com上的"手动创建"说明中:ISO映像中没有描述的文件和目录(例如casper
,filesystem.manifest
,menu.lst
),我不知道它们被替换成了什么。
unetbootin脚本:即使完全脚本化,也需要X服务器(图形支持)才能运行。(命令sudo unetbootin lang=en method=diskimage isofile=~/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yes
会显示错误信息unetbootin: cannot connect to X server
。)
更新
还尝试了GRUB的调整:从以下来源整合信息:
我成功地进行了一半的操作 - 它从USB启动,显示了grub菜单并开始安装,但是安装没有完成。
供参考,这是我最接近成功的情况:
sudo su
# mount USB pen
mount /dev/sd[X]1 /media/usb
# install GRUB
grub-install --force --no-floppy --root-directory=/media/usb /dev/sd[X]
# copy ISO image to USB
cp ~/ubuntu-10.10-server-amd64.iso /media/usb
# mount ISO image, copy existing grub.cfg
mount ~/ubuntu-10.10-server-amd64.iso /media/iso/ -o loop
cp /media/iso/boot/grub/grub.cfg /media/usb/boot/grub/
我然后编辑了
/media/usb/boot/grub.cfg
,添加了一个.iso循环回环的例子grub条目。menuentry "Install Ubuntu Server" {
set gfxpayload=keep
loopback loop /ubuntu-10.10-server-amd64.iso
linux (loop)/install/vmlinuz file=(loop)/preseed/ubuntu-server.seed iso-scan/filename=/ubuntu-10.10-server-amd64.iso quiet --
initrd (loop)/install/initrd.gz
}
当从USB启动时,这会给我Grub引导菜单并启动安装程序,但安装程序在几个屏幕后放弃了,并抱怨找不到光驱。(当然,因为我要安装的机器没有光驱。)
我通过放弃并使用Ubuntu Live桌面CD(在一台有光驱的计算机上)进行“创建USB驱动器”例程来解决了这个特定问题,然后USB安装就可以工作了。
但我希望在没有X服务器和光驱的Ubuntu系统的命令行中有某种方法来做到这一点,所以问题仍然存在。
有人知道如何吗?
unetbootin: 无法连接到X服务器
- 即使在完全脚本化的情况下(unetbootin lang=en method=diskimage isofile=/srv/share/ubuntu-10.10-server-amd64.iso installtype=USB targetdrive=/dev/sdg1 autoinstall=yes
),似乎仍需要X,并且我更倾向于保持无头状态。谢谢你的建议,不过如果没有其他选择了,我可能会安装X。 - j-g-faustusdd
。它是一颗璀璨的宝石。难以言表。而且每个Linux发行版都有dd
;因此你拥有一个通用解决方案,无需编写脚本/配置。只需要一行美丽的命令。 - Maheshgrub.cfg
的条目需要在linux
行上写成file=/cdrom/preseed/ubuntu-server.seed
(而不是file=(loop)/preseed/ubuntu-server.seed
),以避免在成功检测到 CD 镜像后出现致命的“无法检索预配置文件”的错误。 - Paul Whittakerubuntu-12.04-alternate-amd64.iso
),那么你将无法找到ubuntu-server.seed
文件;我改用了cli.seed
,我相信它会产生与F4菜单中的“仅命令行安装”选项相同的结果。 - Paul Whittaker