+ -
当前位置:首页 → 问答吧 → livecd启动后把自己解压到哪里去了?

livecd启动后把自己解压到哪里去了?

时间:2008-11-17

来源:互联网

livecd也就一张CD的容量,启动之后df看了一下,发现有1.5G,而且还有200M的剩余空间,全部放入内存是不可能了,具体实现原理是啥,谁知道的能给解下惑吗?谢谢

作者: fateboat   发布时间: 2008-11-17

引用:
作者: fateboat
livecd也就一张CD的容量,启动之后df看了一下,发现有1.5G,而且还有200M的剩余空间,全部放入内存是不可能了,具体实现原理是啥,谁知道的能给解下惑吗?谢谢
你这1.5G对应的是根目录吗?

作者: think365   发布时间: 2008-11-17

一般LiveCD采用squashfs压缩文件系统,可以把1G的数据压成400-500M,且内核打好补丁后可以直接读些,无需解压。

作者: vslm698   发布时间: 2008-11-17

引用:
作者: think365
你这1.5G对应的是根目录吗?
是的,是根目录,启动lfs-livecd后马上查的,连硬盘都没分配。

Filesystem Size Used Avail Use% Mounted on
/dev/mapper/lfs-cd 1.5G 1.3G 199M 87% /

作者: fateboat   发布时间: 2008-11-17

引用:
作者: vslm698
一般LiveCD采用squashfs压缩文件系统,可以把1G的数据压成400-500M,且内核打好补丁后可以直接读些,无需解压。
系统启动的时候,第一句话就是
Uncompressing Linux... OK, booting the kernel.

作者: fateboat   发布时间: 2008-11-17

引用:
作者: fateboat
系统启动的时候,第一句话就是
Uncompressing Linux... OK, booting the kernel.
这个是内核
不是文件系统
arch里面的代码执行到这里结束
跳入init.c的start_kernel()

作者: simdiak   发布时间: 2008-11-17

引用:
作者: simdiak
这个是内核
不是文件系统
arch里面的代码执行到这里结束
跳入init.c的start_kernel()
这里我明白了,那这个1.5G和199M的可用空间是咋回事?
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/lfs-cd 1.5G 1.3G 199M 87% /

作者: fateboat   发布时间: 2008-11-17

引用:
作者: fateboat
livecd也就一张CD的容量,启动之后df看了一下,发现有1.5G,而且还有200M的剩余空间,全部放入内存是不可能了,具体实现原理是啥,谁知道的能给解下惑吗?谢谢
LFS LiveCD 是用 zisofs 来压缩的,解压是动态的,并非全部解压出来再查找

zisofs 跟 squashfs 或者 cloop 等差不多,目的都是相同的

作者: d00m3d   发布时间: 2008-11-18

引用:
作者: d00m3d
LFS LiveCD 是用 zisofs 来压缩的,解压是动态的,并非全部解压出来再查找

zisofs 跟 squashfs 或者 cloop 等差不多,目的都是相同的
真是奇妙的文件系统,呵呵
d00m3d对这些文件系统有研究吧

作者: think365   发布时间: 2008-11-18

引用:
作者: d00m3d
LFS LiveCD 是用 zisofs 来压缩的,解压是动态的,并非全部解压出来再查找

zisofs 跟 squashfs 或者 cloop 等差不多,目的都是相同的
我原以为给系统加点内存可以让上面的这个系统的可用空间变大,可是加了内存之后发现可用空间还是199M,我的疑惑是:如果我不挂载硬盘就往livecd boot起来的系统里写东西,实际上是写到哪里去了呢?

作者: fateboat   发布时间: 2008-11-18

引用:
作者: fateboat
我原以为给系统加点内存可以让上面的这个系统的可用空间变大,可是加了内存之后发现可用空间还是199M,我的疑惑是:如果我不挂载硬盘就往livecd boot起来的系统里写东西,实际上是写到哪里去了呢?
我试了下 可以写 但是没有想明白他是写在哪里的
还请大虾指教~~

作者: lofeng410   发布时间: 2008-11-18

引用:
作者: think365
真是奇妙的文件系统,呵呵
d00m3d对这些文件系统有研究吧
抱歉,这方没有研究过,只懂皮毛

zisofs 现在比较小人用,压缩比也不是最高,不是太明白为何不用 squashfs+lzma,也许是不想在内核打补丁?

squashfs 使用者众多,举凡今天时下大多数的 LiveCD 都采用它,改用 lzma 压缩比能进一步提高,能容纳更多东西

cloop 现在同样比较少人用,最著名的用户要数 Knoppix,要算是 LiveCD 之母了

它们都有一些共通点:

1. 都是 read-only 的文件系统
2. 由於是动态解压,而且数据甚多,因此演变成刻盘有所要求,因为高速下刻纹较浅,数据误差也较高,所以高容量的 LiveCD 最好都用最慢速刻盘为上。

作者: d00m3d   发布时间: 2008-11-19

引用:
作者: fateboat
我原以为给系统加点内存可以让上面的这个系统的可用空间变大,可是加了内存之后发现可用空间还是199M,我的疑惑是:如果我不挂载硬盘就往livecd boot起来的系统里写东西,实际上是写到哪里去了呢?
LiveCD/LiveDVD 之类的载体本身是 CDROM/DVDROM,也就是 read-only 的,不可能写入,这些 LiveCD 启动後是利用电脑的部份内存来虚拟出文件系统让你去"写入"的,典型的方案是 UnionFS,但 UnionFS 太多 bug,後来就进化出 aufs 等来实现

LFS 的 LiveCD 好像既不是 UnionFS 也不是 aufs,一时记不起是用哪种方式来实现。。。

作者: d00m3d   发布时间: 2008-11-19

引用:
作者: d00m3d
LiveCD/LiveDVD 之类的载体本身是 CDROM/DVDROM,也就是 read-only 的,不可能写入,这些 LiveCD 启动後是利用电脑的部份内存来虚拟出文件系统让你去"写入"的,典型的方案是 UnionFS,但 UnionFS 太多 bug,後来就进化出 aufs 等来实现

LFS 的 LiveCD 好像既不是 UnionFS 也不是 aufs,一时记不起是用哪种方式来实现。。。
d00m3d对Linux了解之深入,让人佩服。。。
呵呵,你平时的工作和Linux有关吗?

作者: think365   发布时间: 2008-11-19