在linux下使用dd命令制作可启动img镜像,制作完成后初始化,如果想要修改img内容,可以将img镜像挂在到指定目录下,然后修改。大体思路是这样的,具体操作如下:
1、首先是使用dd命令制作img镜像,假设制作镜像的名称是linux.img,可以执行下面命令:
-
dd if=/dev/zero of=linux.img count=CONTS bs=BS
bs表示每块(sector)字节数,假设BS=1024,则每块大小是1024字节,可以省略不设,默认大小215字节。count表示需要创建文件的大小,以块(sector)为单位,如果没有设置bs,默认每块大小是512字节,如果linux.img文件大小是1M,则count=2000。
2、格式化制作的镜像,使用
mkfs.ext2、
mkfs.ext3、mkfs.ext4、mkfs.vfat等指令格式化,
mkfs.ext4 linux.img。
3、如果想要修改img镜像,需要将img镜像挂载到指定目录下,假设挂载到当前路径下的iso文件夹下,可以执行命令:
mount -o loop linux.img iso. 其中参数-o options主要是用来描述设备或档案的挂在方式,常用的参数有:
loop:把一个文件当成硬盘分区挂载上系统。
ro:采用只读方式挂载设备。
rw:采用读写方式挂载设备。
iocharset:指定文件系统所用字符集。
有时下载的镜像不一定能够直接挂载,因为除了文件系统外,镜像中含有其他部分,也就是说镜像中只有一部分的内容是上面说的可以直接挂载的文件系统,就需要使用fdisk命令查看该镜像的信息,然后选择挂载的部分。
对于镜像,执行fdisk -l *.img,假设显示的内容是:
-
Disk 3059.img: 4294 MB, 4294967296 bytes
-
-
-
255 heads, 63 sectors
-
/track
-
, 522 cylinders, total 8388608 sectors
-
-
-
Units = sectors of 1 * 512 = 512 bytes
-
-
-
Sector size (logical
-
/physical
-
): 512 bytes / 512 bytes
-
-
-
I
-
/O
-
size (minimum
-
/optimal
-
): 512 bytes / 512 bytes
-
-
-
Disk identifier: 0x000bdbdc
-
-
-
-
-
-
Device Boot Start End Blocks Id System
-
-
-
3059.img1 * 63 7903979 3951958+ 83 Linux
-
-
-
3059.img2 7903980 8385929 240975 5 Extended
-
-
-
3059.img5 7904043 8385929 240943+ 82 Linux swap / Solaris
可以看到sector=512,linux部分从63开始的,所以我们需要从63*512处开始挂载。最后执行下面指令,就可挂载(假设挂在到当前路径下的iso文件夹下)。
sudo mount -o loop,offset=32256 linux.img iso.
假设文件名称是linux.img,32256=63*512,挂载路径是iso。
修改完成后使用umount指令取消挂载即可。
阅读(7419) | 评论(0) | 转发(0) |