Akan
dd if=/dev/zero of=somepartition bs=512
juga menghapus partisi setelah somepartition
atau berhenti di akhir somepartition
?
Akan
dd if=/dev/zero of=somepartition bs=512
juga menghapus partisi setelah somepartition
atau berhenti di akhir somepartition
?
Jawaban:
dd
dd
adalah alat yang sangat kuat tetapi juga berbahaya. Itu melakukan apa yang Anda katakan untuk dilakukan tanpa pertanyaan. Jadi, jika Anda menyuruhnya menghapus foto keluarga, ... dan itu adalah kesalahan mengetik kecil.
Tetapi jika Anda memeriksa dan mengecek, Anda dapat menggunakannya.
dd if=/dev/zero of=somepartition bs=512
atau saya sarankan
dd if=/dev/zero of=/dev/sdxn bs=4096
di mana x
huruf drive dan n
nomor partisi dan ukuran blok 4096 byte membuat proses penulisan lebih cepat.
Penting bahwa Anda menulis ke partisi dalam kasus ini. Jika Anda menulis ke seluruh drive (ujung kepala drive) /dev/sdx
seluruh drive akan ditimpa. Tetapi penulisan ke partisi akan terganggu pada akhir partisi dan partisi di belakangnya akan dipertahankan. (Saya menguji sekarang pada flashdisk USB di Lubuntu 16.04 LTS, jadi saya tahu itu berfungsi seperti itu.)
Ada pengecualian untuk partisi extended (yang merupakan wadah untuk partisi logis, agar memiliki lebih dari empat partisi dalam tabel partisi MSDOS). Ini dijelaskan dalam tautan berikut,
Bisakah saya membuat gambar partisi 'extended' menggunakan dd?
Tapi ada masalah lain juga. Saya menguji perintah Anda dalam lingkungan pengujian, dan hanya membaca satu kibibyte (1024 byte) ketika saya ingin itu membuat gambar dari partisi extended.
Saya juga menguji ini sekarang pada flashdisk USB di Lubuntu 16.04 LTS, dan ini berlaku untuk menulis (juga membaca). Hanya kibibyte pertama yang ditimpa.
Jadi untuk meringkas, menimpa partisi primer dan partisi logis bekerja sesuai dengan deskripsi utama dalam jawaban ini. Tetapi jangan gunakan metode ini untuk menimpa partisi extended karena hanya kibibyte pertama yang akan ditimpa. Partisi logis partisi extended tidak akan lagi ditemukan melalui tabel partisi, tetapi data yang tersimpan di dalamnya masih ada.
dd
dan berisiko, sehingga Anda sangat berhati-hati saat menggunakannya. Semoga berhasil :-) Secara umum, Anda harus selalu memiliki cadangan semua file, yang Anda tidak mampu kehilangannya.
Menulis ke perangkat partisi tidak akan menulis di luar partisi itu, dengan dd atau apa pun. Anda perlu menggunakan perangkat wholedisk untuk memiliki efek di luar satu partisi.
(Peringatan: kecuali jika disk Anda memiliki tabel partisi dengan partisi yang tumpang tindih, yang seharusnya tidak pernah terjadi.)
Saya pikir pertanyaan Anda didasarkan pada kesalahpahaman mendasar tentang bagaimana dd
(dan sebenarnya sistem operasi mirip Unix secara umum) bekerja:
dd
tidak dapat menimpa partisi yang berdekatan, hanya karena dd
tidak dapat menimpa partisi, titik .
dd
cukup menulis ke file . Itu dia.
Sekarang, jika Anda meneruskan dd
file yang mewakili banyak partisi, maka dd
akan menimpa file itu . Tetapi dalam hal ini, itu tidak dd
menulis melewati akhir partisi. dd
masih akan menulis sampai akhir file, dan hanya sampai akhir file.
Tetapi, jika Anda meneruskan dd
file yang hanya mewakili satu partisi, maka dd
tidak akan menulis melewati akhir partisi ini. Sekali lagi, ini tidak ada hubungannya dengan dd
. dd
cukup menulis ke file yang Anda suruh untuk menulis. Fakta bahwa file ini mewakili partisi tunggal (dalam hal ini) dipastikan oleh driver perangkat blok di kernel. dd
tidak ada hubungannya dengan itu.
Jadi, singkatnya: dd
menulis ke file. Apa yang diwakili file-file itu, tidak dd
menjadi perhatian. dd
tidak tahu apa-apa tentang partisi.
dd
untuk menulis ke partisi mentah. Anda hanya dapat menulis ke file. Anda bisa saja menulis ke file perangkat blok yang mewakili partisi (seperti /dev/sda1
), tetapi Anda tidak bisa menulis ke partisi mentah. Dan karena Anda hanya dapat menulis ke file yang mewakili partisi, Anda tidak dapat menulis melewati akhir partisi, karena file tersebut hanya mewakili partisi, dan bukan partisi dan sedikit melewati akhir.
/dev/sda
di editor teks Anda dan mengubah data, dd
tidak berbeda dari program lain dalam hal dapat mengakses partisi. Jawaban yang sangat bagus
Ada skenario khusus yang berbahaya tetapi jarang terjadi di mana ini dapat terjadi bahkan dengan driver perangkat non-buggy block:
Anda harus berhati-hati dengan dd seolah-olah Anda membuat kesalahan Anda dapat menimpa lebih dari yang Anda tawar-menawar dan itu tergantung pada apa yang Anda gunakan untuk dd (OP tidak jelas dalam penggunaan dd dan sintaks yang tepat dari dd perintah).
Jika Anda menentukan partisi itu akan menulis ke partisi itu sampai partisi penuh.
Jika Anda membuat kesalahan dan meletakkan seluruh drive, misalnya = / dev / sda, dd akan menulis ke seluruh drive mulai selesai mengabaikan (dan menimpa) tabel partisi Anda.
Anda juga dapat menggunakan dd pada partisi untuk menimpa file yang dihapus (file yang dihapus mungkin tetap pada partisi dan ditemukan oleh berbagai alat pemulihan dengan berbagai tingkat keberhasilan hingga selesai ditulis. Dalam hal ini Anda dapat menggunakan dd untuk mengisi ruang kosong dengan menulis ke file.
dd if=/dev/zero of=/path/to/mount_point/zero_file bs=4096
rm -f /path/to/mount_point/zero_file
Tergantung pada apa yang Anda lakukan, Anda mungkin ingin menggunakan alat alternatif untuk menghapus file dengan aman. Lihat Bagaimana cara menghapus file dengan cara yang aman? untuk opsi.
dd
bukan level rendah itu. Sebenarnya sebagian besar hal yang dilakukan orang dd
bisa dilakukan dengan cara yang sama cat
. Bahkan cat
sedikit lebih cepat karena menggunakan blok yang lebih besar daripada yang dd
dilakukan secara default. Semua kode level rendah ada di kernel. Dan pengemudi tidak terlalu peduli jika Anda menggunakan dd
atau cat
.
dd if=/dev/zero of=/dev/sda bs=512 count=1
atau dd if=/dev/zero of=/dev/sda bs=512
contoh. Dengan perintah kedua ia akan terus menulis dan mengisi seluruh disk "mengabaikan" tabel partisi. Jika Anda menentukan partisi dd if=/dev/zero of=/dev/sda1
itu tidak akan melampaui partisi. Semacam tergantung pada apa yang ingin Anda lakukan dengan dd.
of=somepartition
, jadi kasus di mana Anda menulis ke seluruh perangkat disk tidak berlaku. dd
tidak dapat menyiasati batasan driver perangkat.
/dev/sda1
, dibuat oleh kernel sedemikian rupa sehingga tidak mungkin untuk mengakses penyimpanan yang berdekatan melalui mereka (dengan asumsi tabel partisi tidak diubah setelah kernel membacanya terakhir kali). Jika Anda dapat mengakses penyimpanan yang berdekatan dengan cara itu, itu akan dianggap sebagai bug yang sangat besar.