Ya, Anda dapat melakukan ini dengan sistem /sys
file.
/sys
adalah filesystem palsu yang dihasilkan secara dinamis oleh driver kernel & kernel.
Dalam kasus khusus ini Anda dapat pergi ke /sys/block/sda
dan Anda akan melihat direktori untuk setiap partisi pada drive. Ada 2 file spesifik dalam folder yang Anda butuhkan, start
dan size
. start
berisi offset dari awal drive, dan size
merupakan ukuran partisi. Hapus saja partisi dan buat ulang dengan awal dan ukuran yang sama persis seperti yang ditemukan di /sys
.
Contohnya seperti inilah tampilan drive saya:
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 133119 65536 83 Linux
/dev/sda2 * 133120 134340607 67103744 7 HPFS/NTFS/exFAT
/dev/sda3 134340608 974675967 420167680 8e Linux LVM
/dev/sda4 974675968 976773167 1048600 82 Linux swap / Solaris
Dan inilah yang saya miliki /sys/block/sda
:
sda1/
start: 2048
size: 131072
sda2/
start: 133120
size: 134207488
sda3/
start: 134340608
size: 840335360
sda4/
start: 974675968
size: 2097200
Saya telah menguji ini untuk memverifikasi informasi yang akurat setelah memodifikasi tabel partisi pada sistem yang sedang berjalan
/dev/sdb/start
. Apakah sudah diubah namanya menjadiext_range
? Kernel:4.8.15-1-MANJARO
/sys/block/sdb/start
, bukan/dev/sdb/start
stat
sana, tetapi tidakstart
.fdisk
karena memungkinkan untuk memasukkan jumlah sektor secara langsung dan Anda dapat memeriksa nilai sebelum menulis ke disk. Saya berhasil memulihkan disk dengan: membuat partisi pertama, menerima makhluk, lalu memasukkan "ukuran +" (dari atas) untuk akhir, partisi kedua masukstart
dari / sys ... dan "+ ukuran" lagi dan seterusnya ... Periksa ukuran partisi sebelum menulis tabel baru. Semoga berhasil!Saya membuat skrip untuk membantu menyelesaikan masalah ini, TANPA GARANSI . (tapi saya diuji pada mesin virtual saya)
Menjalankan skrip berikut, dengan HD yang rusak pada parameter pertama: $ ./repart.sh sda
Outputnya adalah format sfdisk. Tapi hati-hati , file ini harus dimodifikasi untuk digunakan. Pada tipe partisi extended = 5, tambah ukurannya, menggunakan semua ruang logis plus ruang antara mulai diperluas dan mulai partisi logis pertama.
Anda harus mengubah jenisnya , dari XX ke jumlah tipe partisi. Letakkan partisi yang dapat di - boot pada baris pertama.
Terapkan perubahan ini
Baca kembali tabel partisi
Instal ulang grub
sumber
Sudahkah Anda mencoba testdisk ? Itu dapat memindai disk dan memulihkan tabel partisi yang hilang, bahkan setelah Anda reboot.
Ini tersedia pra-paket untuk Debian dan mungkin juga untuk Ubuntu. Mungkin distro lain.
Jika Anda mem-boot CD gparted, mungkin perlu diperiksa untuk melihat apakah CD tersebut sudah diinstal sebelumnya.
sumber