码迷,mamicode.com
首页 > 其他好文 > 详细

使用 loop device 制作安装镜像

时间:2017-11-07 14:21:27      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:准备   nbsp   near   提取   镜像   span   set   art   查看   

看了下,手上的镜像中,文件系统才 100 多兆,但是整个镜像居然要 4G, 这意味着,我每次安装这个镜像到 SD 卡都要花很多没必要的时间。

所以,我提取了一些关键内容,然后,准备重新打包镜像。

 

1.新建空文件。因为文件系统之有 100M,加上其它杂七杂八内容,顶多 200M,所以,先生成一个 200M 的空文件:

$dd if=/dev/zero of=test.img bs=1M count=200

2. 将空文件关联到 loop device。然后,查看哪个 loop device 是空闲的:

$sudo losetup -f

/dev/loop0

看到 loop0 空闲,那么,我们可以放心的把 loop0 关联到 test.img 文件:

$sudo losetup /dev/loop0 test.img

3. 对 loop deivce 进行分区。因为手上的镜像中有两个 ext4 类型的分区,所以,还要新建两个分区。其中,第一个分区的起始位置还有大小,以及第二个分区的起始点,是在 boot 时要用到的,所以就直接参考原镜像了。

使用 fdisk 对 /dev/loop0 进行分区:

sudo fdisk /dev/loop0

4. 将 loopdev 上的分区 map 出来。分区完后,我们并不能直接立马看到 loop device 的分区,而是要用下面语句添加 loop0 上个分区的设备文件节点:

$ sudo kpartx -av /dev/loop0
add map loop0p1 (252:0): 0 129025 linear /dev/loop0 2048
add map loop0p2 (252:1): 0 276480 linear /dev/loop0 133120

 

如此,我们就准备好了用来安装镜像的 loop 设备,以及可以安装文件系统的两个分区。把我们需要的文件 dd 到合适位置就可以了。

 

完成后,需要逆向的操作来取消关联:

sudo kpartx -dv /dev/loop0

sudo losetup -d /dev/loop0

 

到此,新的 image 文件就制作好了,已经可以直接 dd 到 sd 卡上用来启动系统。

使用 loop device 制作安装镜像

标签:准备   nbsp   near   提取   镜像   span   set   art   查看   

原文地址:http://www.cnblogs.com/pied/p/7798586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!