Bismillahirrahmanirrahim.
Tujuan menghapusan byte dari suatu berkas ISO adalah supaya saya dapat memperagakan bagaimana memperbaiki berkas ISO korup dengan BitTorrent.
Versi Gambar
Versi Teks
┌─[master@master]─[/tmp] └──╼ head -c -2 --verbose ubuntu-12.04-desktop-i386.iso > ubuntu-12.04-desktop-i386-korup.iso ^C ┌─[✗]─[master@master]─[/tmp] └──╼ head -c -2 ubuntu-12.04-desktop-i386.iso > ubuntu-12.04-desktop-i386-korup.iso ┌─[master@master]─[/tmp] └──╼ md5 md5pass md5sum md5sum.textutils ┌─[master@master]─[/tmp] └──╼ md5sum ubuntu-12.04-desktop-i386.iso d791352694374f1c478779f7f4447a3f ubuntu-12.04-desktop-i386.iso ┌─[master@master]─[/tmp] └──╼ md5sum ubuntu-12.04-desktop-i386-korup.iso 25d7a79813dabb7db29bd8afbd68b0db ubuntu-12.04-desktop-i386-korup.iso ┌─[master@master]─[/tmp] └──╼ ls -lah ubuntu* -rw-rw-r-- 1 master master 702M Apr 27 2012 ubuntu-12.04-desktop-i386.iso -rw-rw-r-- 1 master master 702M Feb 18 18:58 ubuntu-12.04-desktop-i386-korup.iso ┌─[master@master]─[/tmp] └──╼ ls -la ubuntu* -rw-rw-r-- 1 master master 735358976 Apr 27 2012 ubuntu-12.04-desktop-i386.iso -rw-rw-r-- 1 master master 735358974 Feb 18 18:58 ubuntu-12.04-desktop-i386-korup.iso ┌─[master@master]─[/tmp] └──╼ ls -las ubuntu* 718128 -rw-rw-r-- 1 master master 735358976 Apr 27 2012 ubuntu-12.04-desktop-i386.iso 718128 -rw-rw-r-- 1 master master 735358974 Feb 18 18:58 ubuntu-12.04-desktop-i386-korup.iso
Alur Kerja
- Lakukan penyalinan data ke buffer dengan head kecuali 2 byte paling akhir. Ini dilakukan dengan head -c -2.
- Redirect ke berkas baru dengan ekstensi .iso.
- Berkas ISO yang sama tetapi korup tercipta.
Hasil
Tercipta satu berkas ISO dengan nama ubuntu-12.04-desktop-i386-korup.iso dengan hash MD5 berbeda dengan ISO aslinya (telah dipastikan valid dengan MD5SUM Hash resmi). Perbedaan ukuran berkasnya 735358976 byte (asli) dan 735358974 byte (korup). Berbeda tepat 2 byte sesuai angka -2 pada head -c. Masya Allah.
Komentar
Alur kerja yang saya temukan ini bukan yang paling efisien karena masih ada redirecting. Sebetulnya saya ingin seperti pembuat virus di Windows yang mampu menghapus sebagian isi berkas (membuat korup) hanya dalam satu kali kerja. Namun sementara ini sudah cukup karena tujuan tersebut di atas. GNU head (sebetulnya saya juga mencoba GNU dd sebelumnya) telah sangat baik melakukan ini. Implementasi GNU tail, GNU truncate, dan perl pun masih ada dan saya belum mencoba semuanya.
Referensi
http://www.quora.com/How-do-I-chop-off-just-the-last-byte-of-a-file-in-Bash

