当前位置: 首页>>技术教程>>正文


如何缩小USB克隆DD文件图像输出

, ,
本文我们讨论了如何缩小由dd命令。这是示例方案。您已经制作了四个分区,总磁盘空间为3GB:


# sfdisk -l -uM ubuntu_USB.img
sfdisk: Disk ubuntu_USB.img: cannot get geometry


Disk ubuntu_USB.img: 950 cylinders, 255 heads, 63 sectors/track
Units: 1MiB = 1024*1024 bytes, blocks of 1024 bytes, counting from 0

   Device Boot Start   End    MiB    #blocks   Id  System
ubuntu_USB.img1         1     50     50      51200    b  W95 FAT32
ubuntu_USB.img2        51    150    100     102400    b  W95 FAT32
ubuntu_USB.img3   *   151   2650   2500    2560000    b  W95 FAT32
ubuntu_USB.img4      2651   3000    350     358400    b  W95 FAT32

此分区表存在于您的USB驱动器上,并且带有dd命令已将克隆副本复制到名为usb_dd.img。但是,输出dd映像文件的大小等于USB memory 棒的大小,而不是所有分区的总和。一个块等于1MB(1024 * 1024)字节,即,预期大小应为3000MB。但是,我们得到了7.3G。这是因为dd默认情况下,该命令将克隆整个块设备,而忽略整个分区布局:


# ls -lh ubuntu_USB.img
-rw-rw-r--. 1 lubos lubos 7.3G Jan 24 11:37 ubuntu_USB.img

接下来,我们需要获得扇区总数,以便从该映像中删除多余的磁盘大小。要获取此信息,请执行以下操作:


# fdisk -l -u ubuntu_USB.img

Disk ubuntu_USB.img: 7818 MB, 7818182656 bytes, 15269888 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 label type: dos
Disk identifier: 0x000804a3

          Device Boot      Start         End      Blocks   Id  System
ubuntu_USB.img1            2048      104447       51200    b  W95 FAT32
ubuntu_USB.img2          104448      309247      102400    b  W95 FAT32
ubuntu_USB.img3   *      309248     5429247     2560000    b  W95 FAT32
ubuntu_USB.img4         5429248     6146047      358400    b  W95 FAT32

最后一个扇区是6146047。接下来,使用dd命令创建另一个映像,但仅创建最后一个扇区:


# dd if=ubuntu_USB.img of=ubuntu_USB.iso count=6146047
ALTERNATIVELY CLONE DIRECTLY FROM USB eg.:
# dd if=/dev/sdX of=ubuntu_USB.iso count=6146047

基于其分区总和,生成的图像将具有正确的图像大小。


$ ls -lh ubuntu_USB.iso 
-rw-r--r--. 1 root root 3.0G Jan 24 11:58 ubuntu_USB.iso

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/8639.html,未经允许,请勿转载。