直接用grub2启动硬盘上的liveCD,不需解压ISO

启动讨论 grub/grub2/syslinux/grub4dos/Lilo
myheartshape
帖子: 58
注册时间: 2009-12-11 19:01

直接用grub2启动硬盘上的liveCD,不需解压ISO

#1

帖子 myheartshape » 2010-02-11 16:47

有感于千里不留行兄的用grub4dos实现多重live启动(详见:viewtopic.php?f=77&t=226247
但这个问题有个麻烦是必须要把内核解压到文件夹下,以grub4dos载入,进而实现live启动。
既然grub2有loopback命令可以载入iso文件,能不能直接用grub2实现硬盘liveCD的启动呢?况且grub2是U9.10默认带的,update-grub很方便,也懒的再折腾grub4dos了。
经过一晚上的google搜索和实验,已成功完成。具体思路如下:
1 将下载的iso放入分区中,分区任意。(我这里ntfs和ext4均通过,其他未测试)
2 在grub2启动项挂载iso。比如我的电脑有C: D: E: F: ,NTFS格式和ext4, swp分区。将a.iso放在D:盘根目录下。grub2启动项上按c进入命令行模式,

代码: 全选

loopback lo1 (hd0,2)/a.iso
3

代码: 全选

insmod ntfs #因为D盘是NTFS格式。
3

代码: 全选

linux (lo1)/casper/vmlinuz boot=casper iso-san/filename=/a.iso noeject noprompt --
#原版的ubuntu9.10CD的启动内核在casper文件夹下,其他linux发行版请自行修改;
4

代码: 全选

initrd (lo1)/casper/initrd.lz
#相关文件名请自行修改;
5

代码: 全选

boot
完成。测试新氧的9.04, U原版CD通过。均是CD版,DVD版未测试。

把1~4直接写入到/etc/grub.d/40.custom下,直接生成grub.cfg. 具体代码如下:

代码: 全选

menuentry "Ubuntu LiveCD On D:(这里名称任意)" {
loopback lo1 (hd0,2)/a.iso
insmod ntfs
linux (lo1)/casper/vmlinuz boot=casper iso-san/filename=/a.iso noeject noprompt --
initrd (lo1)/casper/initrd.lz
}
然后

代码: 全选

update-grub
大功告成!
依此类推,可以填加任意多个liveCD了,你的启动菜单也会变的很壮观,但其实不占用过多的硬盘空间,只是各个ISO而已。
现在可以轻松自己打包各自的liveCD,再加上grub2有自己的启动盘,这样,不管是从机子硬盘还是移动硬盘、U盘、光驱内启动grub2,都可以应用以上思路直接启动硬盘或移动硬盘、U盘内的iso文件,而且是ISO的live系统,不影响移动硬盘、U盘的正常使用, grub2实在是强大。
图太麻烦就不截了。
(感谢mikas blog: http://michael-prokop.at/blog/2009/05/2 ... via-grub2/)
头像
tenzu
论坛版主
帖子: 36924
注册时间: 2008-11-21 20:26

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#2

帖子 tenzu » 2010-02-11 17:14

iso本来就不是解压用的...
头像
tiyuanmaster
帖子: 73
注册时间: 2009-06-14 20:14
联系:

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#3

帖子 tiyuanmaster » 2010-02-11 17:46

loopback命令可用于建立回放设备:例子:

loopback lo0 (hd0,1)/aa.iso

然后可以使用lo0设备来访问aa.iso里的内容,比如说,可以从aa.iso里的软盘映像中启动:

loopback lo0 (hd0,1)/aa.iso
linux (lo0)/memdisk
initrd (lo0)/aa.img

当使用硬盘映像时,要加上-p参数。

loopback -p lo0 (hd0,1)/aa.dsk

这时,映像中的第一个分区就可以使用(lo0,1)来访问。

loopback命令可以嵌套使用。比如说,列表第一个分区里的硬盘映像aa.dsk里的光盘映像aa.iso里的软盘映像aa.img里的根目录的文件:

loopback -p lo0 (hd0,1)/aa.dsk
loopback lo1 (lo0,1)/aa.iso
loopback lo2 (lo1)/aa.img
ls -l (lo2)/

回放设备的名字可以随意设置,比如说,可以使用loop作为名字,访问时使用(loop)就可以了。

要删除某一回放设备,可以使用-d参数:

loopback -d lo0
其实我是不懂装懂的…………………………
myheartshape
帖子: 58
注册时间: 2009-12-11 19:01

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#4

帖子 myheartshape » 2010-02-11 18:05

tenzu 写了:iso本来就不是解压用的...
我的意思是不需从iso中解压出vmlinuz和initrd文件
头像
adagio
论坛版主
帖子: 22110
注册时间: 2008-02-17 23:47
来自: 美丽富饶的那啥星球

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#5

帖子 adagio » 2010-02-11 18:30

试试 :em11
明天就换大三八!
——8核CPU、8G内存、8T硬盘……
8卡交火,80寸大屏放8个……
IPv8的光纤要8条……

---------------------------------------------------------------------------------
[图片版]新手当自强(续)FAQ
[新手进阶]挂载、fstab、调整linux分区
[图片版]E17桌面环境配置手把手
头像
tiyuanmaster
帖子: 73
注册时间: 2009-06-14 20:14
联系:

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#6

帖子 tiyuanmaster » 2010-02-11 18:35

g4d的map --mem应该也是一种选择吧
其实我是不懂装懂的…………………………
头像
smallapple
论坛版主
帖子: 7868
注册时间: 2009-03-28 15:12

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#7

帖子 smallapple » 2010-02-11 18:37

g4d 的 map --mem 更强大
头像
monk
帖子: 19507
注册时间: 2010-01-28 10:45

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#9

帖子 monk » 2010-05-10 17:19

准备抛弃grub4dos :em11

*********宁静致远*********
如果我说的有什么不对,请看签名第一行
头像
Dororo
帖子: 210
注册时间: 2009-05-08 20:29
来自: 广东

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#10

帖子 Dororo » 2010-05-23 11:13

直接写入到/etc/grub.d/40.custom下,生成grub.cfg,这个方法不行,启动项没有显视。另外可不可以用这个方法硬盘安装的
头像
Dororo
帖子: 210
注册时间: 2009-05-08 20:29
来自: 广东

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#11

帖子 Dororo » 2010-05-23 11:26

可以挂载livecd,但是不能安装,因为挂载了分区;不能安装alternate版的,说没发现光盘。本来打算用这个方法实行硬盘安装的
头像
Dororo
帖子: 210
注册时间: 2009-05-08 20:29
来自: 广东

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#12

帖子 Dororo » 2010-05-23 12:46

alternate版的挂载成功之后,安装时说检测不到光盘。
头像
adam8157
帖子: 2794
注册时间: 2009-03-05 16:31
联系:

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#13

帖子 adam8157 » 2010-05-23 12:51

不是所有的都可以, 必须引导起来的内核支持到iso中找文件才行....不能以此类推....
头像
Dororo
帖子: 210
注册时间: 2009-05-08 20:29
来自: 广东

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#14

帖子 Dororo » 2010-05-23 13:19

boot=?????? 问号处是填路径还是文件名?
头像
Dororo
帖子: 210
注册时间: 2009-05-08 20:29
来自: 广东

Re: 直接用grub2启动硬盘上的liveCD,不需解压ISO

#15

帖子 Dororo » 2010-05-23 19:17

楼主,直接修改grub.cfg,然后不用update-grub。
回复