動作イメージはこんな感じ。
1埋めされたテスト用ファイルの作成
$ for i in {1..1024}; do echo -n 1 >> test.dd; done
00000000: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000010: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000020: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000030: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000040: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000050: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000060: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000070: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000080: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000090: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000100: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000110: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000120: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000130: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000140: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000150: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000160: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000170: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000180: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000190: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000200: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000210: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000220: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000230: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000240: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000250: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000260: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000270: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000280: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000290: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000300: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000310: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000320: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000330: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000340: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000350: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000360: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000370: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000380: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000390: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111
ddを使ってzeroファイルから1024バイトのファイルを作成
$ dd if=/dev/zero of=test.dd bs=1 count=1024
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000320: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
これをseekを使って最後の1バイトだけを書き込んでやると。
$ rm test.dd
$ for i in {1..1024}; do echo -n 1 >> test.dd; done
$ dd if=/dev/zero of=test.dd bs=1 count=1 seek=1023
00000000: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000010: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000020: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000030: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000040: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000050: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000060: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000070: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000080: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000090: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000100: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000110: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000120: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000130: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000140: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000150: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000160: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000170: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000180: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000190: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000001f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000200: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000210: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000220: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000230: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000240: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000250: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000260: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000270: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000280: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000290: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000002f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000300: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000310: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000320: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000330: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000340: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000350: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000360: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000370: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000380: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000390: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000003f0: 3131 3131 3131 3131 3131 3131 3131 3100 111111111111111.
途中だけを書き換えようとしても、ddが書き込みを終了した箇所がファイルのEOFになる。
$ dd if=/dev/zero of=test.dd bs=1 count=256 seek=256
00000000: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000010: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000020: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000030: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000040: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000050: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000060: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000070: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000080: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000090: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000a0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000b0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000c0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000d0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000e0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 000000f0: 3131 3131 3131 3131 3131 3131 3131 3131 1111111111111111 00000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
これを利用すると、手軽に巨大ファイルが作成できる。
$ rm test.dd
$ dd if=/dev/zero of=test.dd bs=1 count=1 seek=1023
00000000: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000010: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000020: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000190: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000001f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000200: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000210: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000220: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000230: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000240: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000250: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000270: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000290: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000002f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000300: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000310: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000320: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000330: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000340: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000350: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000360: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000370: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000380: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 00000390: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 000003f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
1GBのファイル作成例(seekを使わないと少々時間がかかるが、seekではじめの1023MBをすっ飛ばして、最後の1MBだけ書き込むの一瞬で終わる)
$ dd if=/dev/zero of=test.dd bs=1024k count=1 seek=1023
これがいわゆる論理的なサイズと、実際の容量が異なるスパースファイル。
スパースファイルの作成はファイルシステム側がサポートしている必要がある。モダンなファイルシステム(ext3, ext4, xfs, ntfs)はほぼサポートされる。
スパースファイルをコピーする場合、デフォルトではスパースファイルのままコピーされる。これはcpコマンドのオプションで制御できる。
man cpより抜粋
--sparse=WHEN
「スパースなファイル」とは「ホール( 穴 )」 (物理ディスクブロックを占有しないゼロバイトの連続) を含むものである。 read システムコールはそれらのファイルをゼロとして読み込む。 多くのバイナリファイルにはゼロバイトの並びがたくさん含まれているので、このオプションにより、かなりのディスク容量を節約し、 スピードを上げることができる。 デフォルトでは `cp' は大雑把な発見的手法で 入力されたコピー元ファイルからホールを検知し、 対応する出力ファイルもスパースにする。
WHEN の値は下のいずれかである:
auto
デフォルトの動作:入力ファイルがスパースのとき、 出力ファイルもスパースにする。
always
常に出力ファイルをスパースにする。このオプションは入力ファイルが スパースなファイルをサポートしないファイルシステム上にあるが、 出力ファイルはスパースなファイルをサポートするファイルシステム上に 置かれる場合に有用である。
never
出力ファイルをスパースにしない。 このオプションの有意義な利用法を見付けたら筆者に教えてほしい。
0 件のコメント:
コメントを投稿