ฉันมีไดรฟ์ USB 8GB ติดตั้งกับระบบของฉันซึ่งมีลักษณะดังนี้:
[root@host]# fdisk -l /dev/sdb
Disk /dev/sdb: 8462 MB, 8462008320 bytes
255 heads, 63 sectors/track, 1028 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5c0894d9
Device Boot Start End Blocks Id System
/dev/sdb1 * 1 9 72261 e W95 FAT16 (LBA)
/dev/sdb2 10 103 755055 83 Linux
[root@host]#
ดังนั้นโดยทั่วไปแล้วพาร์ติชัน FAT ของฉันอยู่ที่ประมาณ 70 MB, ext2 พาร์ติชันอยู่ที่ประมาณ 740MB และพื้นที่ที่เหลือ (~ 7 GB) ไม่ได้ถูกจัดสรร ตอนนี้เมื่อฉันฮาร์ดไดรฟ์ USB ของฉันผ่าน:
dd if=/dev/sdb of=myimage.img bs=1M
ไฟล์เอาต์พุต (myimage.img) อยู่ที่ประมาณ 8GB ซึ่งเป็นการทำงานปกติของ dd
คำถาม: สิ่งที่ฉันกำลังมองหาคือวิธีการโคลนฮาร์ดไดรฟ์ USB ของฉันโดยตรงโดยไม่ต้องจัดสรรพื้นที่ว่างเพื่อให้ไฟล์ผลลัพธ์ของฉันมีขนาดประมาณ 1 GB ที่ไม่บีบอัดแทนที่จะเป็น 8 GB เหตุผลที่ฉันถามคือเนื่องจากไฟล์ที่ส่งออก (myimage.img) กำลังถูกใช้โดยโปรแกรมจำลองการทำงานเพื่อบูตอิมเมจ เครื่องมือจำลองสามารถจัดการไฟล์ 8 GB ได้ แต่ฉันไม่ต้องการเสียพื้นที่ดิสก์ของฉัน