Chinaunix首页 | 论坛 | 博客

apt

  • 博客访问: 380300
  • 博文数量: 121
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 600
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-10 15:52
文章分类

全部博文(121)

文章存档

2017年(2)

2016年(23)

2015年(96)

我的朋友

分类: LINUX

2015-06-30 09:52:21

        在linux下使用dd命令制作可启动img镜像,制作完成后初始化,如果想要修改img内容,可以将img镜像挂在到指定目录下,然后修改。大体思路是这样的,具体操作如下:
        1、首先是使用dd命令制作img镜像,假设制作镜像的名称是linux.img,可以执行下面命令:

点击(此处)折叠或打开

  1. 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,假设显示的内容是:

点击(此处)折叠或打开

  1. Disk 3059.img: 4294 MB, 4294967296 bytes
  2.        
  3.  
  4.         255 heads, 63 sectors
  5.         /track
  6.         , 522 cylinders, total 8388608 sectors
  7.        
  8.  
  9.         Units = sectors of 1 * 512 = 512 bytes
  10.        
  11.  
  12.         Sector size (logical
  13.         /physical
  14.         ): 512 bytes / 512 bytes
  15.        
  16.  
  17.         I
  18.         /O
  19.         size (minimum
  20.         /optimal
  21.         ): 512 bytes / 512 bytes
  22.        
  23.  
  24.         Disk identifier: 0x000bdbdc
  25.        

  26.            
  27.        
  28.  
  29.         Device Boot Start End Blocks Id System
  30.        
  31.  
  32.         3059.img1 * 63 7903979 3951958+ 83 Linux
  33.        
  34.  
  35.         3059.img2 7903980 8385929 240975 5 Extended
  36.        
  37.  
  38.         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指令取消挂载即可。

    



阅读(7262) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~