问题的说明
不想刻录CD、DVD或USB内存棒。 我不关心保存现有的操作系统(Linux mint )。 希望直接从ISO映像在计算机上安装Ubuntu (实际为Kubuntu 12.04 LTS )。 此图像适用于KubuntuliveDVD(3.5GB )。
计算机已在Linux Mint上启动。 一系列命令行步骤将是令人满意的。 在我看来,我只是觉得欺骗了现有的系统,插入了CD /DVD,对吧?
我知道已经有类似的问题了,但是那个没有好的答案。 答案基本上是,“看这个链接。 ”。 虽然看到了链接,但是我认为堆栈交换需要好的答案来解决这个问题。 此外,互联网上其他地方的大多数答案都假设用户从Windows进入Ubuntu。 所以我认为这个问题需要好的答案。 谢谢
最佳解决方法
我发现这是在网上看的。
如果在Grub2配置文件中正确定义了条目,则Grub2可以直接启动许多Linux发行版的ISO映像。
必须将ISO映像放置在未安装操作系统的另一个分区上。 为了简单起见,将其放置在/boot下的新目录中。 假设在另一个分区上。
创建新目录并复制ISO映像:
sudo mkdir /boot/iso
SDO CP~~/desktop/name.iso/boot/iso
假设映像位于桌面上,~/Desktop/name.ISO是iso映像的位置和名称。
添加Grub2条目:
必须将ISO映像条目添加到/etc/grub.d/40_custom文件中。 编辑文件:
ksudogedit/etc/grub.d/40 _ custom
用以下文件替换文件中的文本:
#! /gddxf/sh
echo 'Adding 40_custom.' 2
exec tail -n 4 $0
# thisfileprovidesaneasywaytoaddcustommenuentries.simplytypethe
# menuentriesyouwanttoaddafterthiscomment.becarefulnottochange
# the 'exec tail' line above。
菜单入口' kubuntu iso ' {
set iso file='/boot/iso/kubuntu-12.04.iso '
loopback loop (hd0,8 ) $ iso文件
Linux(loop )/Casper/vmlinuz boot=Casper iso-scan/filename=$ isofilenopromptnoeject
initrd(loop )/casper/initrd.lz
}
在哪里:
在Kubuntuiso=grub菜单中显示的名称。
boot/iso/kubuntu-12.04.iso=ISO映像的位置和名称。
(hd0,8 )包含ISO映像的分区。
注: tail -n 4简要说明了“哪些行的grub现在按原样读取配置”。 本例的第四行是第一个注释行,这很好。
Grub以与Ubuntu不同的方式读取分区。 “HD0”表示Ubuntu已读取为sda中的第一个硬盘,8是与Ubuntu相同的分区。 换句话说,(hd0,8 )表示’sda 8’。
要找到分区,请在终端上运行此命令。
sudo fdisk -l
如果映像包含在sda1分区中,请将上一行中的[ hd0,8 ]更改为[ hd0,1 ];如果映像包含在sdb1分区中,请将[ hd0,8 ]更改为[ hd1,1 ]
保存并关闭文件,然后运行以下命令:
sudo更新- grub
这次重新启动,从Grub菜单中选择新的ISO条目。 希望能正常启动到桌面。
现在,如果要从同一ISO执行安装,必须首先卸载ISO映像。 这是从硬盘分区安装的。 您可能有硬盘,并希望在同一硬盘上安装Ubuntu。 安装程序必须卸载已安装的分区,然后才能进行更改。
因此,从实时CD环境转移到终端来执行:
sudo umount-l/iso设备
就这样。 现在可以在桌面上使用双点击安装图标继续安装。
次优的解决方法
不能使用Mitch的答案。 因为我想安装Ubuntu minimal,但ISO映像不起作用(没有vmlinuz )。 所以我要改编它,用netboot安装
将下载的文件放入/boot /netboot中,并将以下条目添加到grub配置中:
菜单入口' net安装' {
Linux (hd0,0 )/boot/netboot/Ubuntu-installer/amd64/Linux
initrd (hd0,0 )/boot/netboot/Ubuntu-installer/amd64/initrd.gz
}
然后我忘了跑步
sudo更新- grub
所以我不得不重新启动到现有的linux,但最终更新了grub,实现进展非常顺利。
参考资料