Untuk memulai dari keadaan bersih saya perlu mengatur ulang hard disk ke keadaan kosong dari baris perintah.
Ini bukan tentang menjalankan utilitas penghapusan, data tidak harus ditimpa.
Pertanyaan ini sangat mirip dengan Menghapus Semua Partisi Dari Baris Perintah
Solusi di sana bekerja dengan sangat baik,
dd if=/dev/zero of=/dev/sda bs=512 count=1 conv=notrunc
tetapi jika saya ingin bekerja dengan disk yang ditimpa, saya mendapatkan kesalahan bahwa perangkat masih digunakan.
root@grml ~ # blockdev --rereadpt /dev/sda
BLKRRPART: Device or resource busy
atau
root@grml ~ # partprobe
Error: Partition(s) 2, 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Error: Partition(s) 2, 3 on /dev/sdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Jadi saya harus secara manual menonaktifkan semua yang "duduk" di perangkat
umount /mnt/debootstrap
umount /mnt/debootstrap/tmp
umount /mnt/debootstrap/var/log
umount /mnt/debootstrap/var
umount /mnt/debootstrap/home
service mdadm stop
service lvm2 stop
vgremove vg_main
pvremove /dev/md1
mdadm --stop /dev/md0
mdadm --stop /dev/md1
mdadm --remove /dev/md0
mdadm --remove /dev/md1
setelah itu partprobe
perintahnya berfungsi.
apakah ada beberapa perintah yang bekerja lebih sederhana? Suka
harddiskreset /dev/sda
sehingga dapat dengan mudah digunakan pada sistem dengan tata letak partisi / lvm / md berbeda?
Jawaban:
The
wipefs
Program memungkinkan Anda dengan mudah menghapus tanda tangan partisi-meja:Anda masih harus menghentikan proses apa pun menggunakan perangkat, seperti LVM.
Dari
man wipefs
sumber
Saya selalu hanya menggunakan parted untuk ini. Ia bekerja dengan baik untuk mengubah tipe disklabel dan menambah / menghapus partisi, terutama karena ia dapat menangani HDD besar modern tidak seperti fdisk.
Anda bisa lari
Ini akan memulai semuanya dan membawa Anda ke terminal berpisah. Anda kemudian dapat menjalankan perintah bantuan untuk menampilkan semua perintah yang tersedia. Cukup jelas.
Saya akan menyebutkan bahwa ya Anda harus memiliki semua partisi disk yang ingin Anda format unmount. Jika Anda hanya mencari cara yang lebih cepat untuk meng-unmount semua partisi, saya kira Anda bisa melakukannya dengan regex di perintah umount tetapi itu tampak konyol.
Menggunakan parted untuk mengelola HDD saya tidak pernah harus memaksa menyegarkan disk atau yang serupa.
Untuk sepenuhnya menyegarkan drive untuk penggunaan baru, saya biasanya melakukan hal berikut:
1) mulai berpisah dengan menjalankan
sudo parted /dev/sda
2) menemukan partisi yang ada dengan menjalankan
print
3) hapus partisi yang ada dengan menjalankan
rm 1
penggantian 1 dengan nomor partisi yang ingin Anda hapus. Kemudian ulangi untuk semua partisi yang tersisa pada disk.4) reset disklabel dengan menjalankan
mklabel gpt
saya menggunakan tipe label gpt tetapi Anda dapat menggunakan msdos standar atau apa pun preferensi Anda. Berikut adalah daftar tipe disklabel5) Buat partisi baru dengan menjalankan
mkpart
Ini akan menjalankan Anda melalui panduan membuat partisi. Titik awal dan akhir default untuk sektor. Anda dapat mengubah ini dengan menjalankanunit
perintah sebelum menjalankan.mkpart
Dengan cara ini Anda dapat menentukannya dalam GB atau TB atau MB dll.6) periksa hasil Anda menggunakan
print
untuk melihat info tabel partisi baru Anda7) Anda kemudian perlu memformat partisi. Ini tidak boleh dilakukan melalui parted walaupun beberapa opsi untuk ini tersedia. Saya akan menyarankan sebaliknya menjalankan
quit
untuk keluar dari terminal parted dan kemudian menggunakanmkfs
untuk memformat partisi. Ingatlah untuk menjalankan 'mkfs' di / dev / sda1 alih-alih / dev / sda karena Anda memformat partisi dan bukan disk secara keseluruhan.Itu saja.
Saya harap ini menjawab pertanyaan Anda.
Juga, berikut adalah manual berpisah online untuk referensi: https://www.gnu.org/software/parted/manual/html_node/index.html
EDIT:
OP ingin melakukan hal semacam ini dari naskah dan bukan dari terminal. Anda dapat melakukan jenis prosedur yang sama melalui skrip dengan menjalankan parted melalui perintah baris tunggal alih-alih di dalam terminal parted.
Misalnya perintahnya
Akan mencetak informasi drive dan tabel partisi ke konsol bash yang kemudian dapat dimanipulasi menggunakan grep dll untuk membuat variabel atau apa pun yang Anda inginkan dalam skrip bash.
sumber
parted /dev/sda print
akan mencetak tabel partisi untuk / dev / sda. Anda dapat melakukan hal yang sama yang saya jelaskan di atas hanya dengan perintah baris tunggal jika Anda perlu melakukannya dalam skrip bash.parted /dev/sda
juga saya harus tahu berapa banyak partisi pada drive untuk memanggilrm 1
, saya mencari perintah untuk hanya membersihkan disk, sehingga saya dapat mempartisi ulang, tanpa melakukan semua hal manual mematikan md's menghapus lv's dan sebagainya.df
jika drive sudah terpasang. Bagaimana Anda berencana membuat "skrip" jika Anda tidak dapat menemukan lokasi drive? 2) cukup mudah untuk menjalankanparted $drive print
dan menangkap hasil untuk menemukan semua nomor partisi yang tersedia dan kemudian menyimpannya dalam array. Kemudian gunakan nilai-nilai itu untuk menjalankanparted $drive rm $partition
. Semua hal ini adalah scripting bash yang cukup sederhana.Gunakan versi fdisk non-interaktif yang ditingkatkan, yaitu sfdisk
Untuk menghapus tabel partisi gunakan perintah ini:
sumber
Pada dasarnya kesalahan ini
muncul ketika Anda melewatkan beberapa parameter saat mempartisi disk Anda. Anda dapat memperbaiki kesalahan ini dengan melihat dari dekat ke parameter yang Anda tetapkan saat mempartisi.
Gunakan:
fdisk -l
untuk memeriksa parameter disk Anda:sumber