Ya, Anda dapat melakukannya dengan /sys sistem file.
 /sys adalah sistem file palsu yang dihasilkan secara dinamis oleh kernel &driver kernel. 
 Dalam kasus khusus ini, Anda dapat membuka /sys/block/sda dan Anda akan melihat direktori untuk setiap partisi di drive. Ada 2 file khusus di folder yang Anda butuhkan, start dan size . start berisi offset dari awal drive, dan size adalah ukuran partisi. Hapus saja partisi dan buat ulang dengan awal dan ukuran yang sama persis seperti yang ditemukan di /sys .
Misalnya 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 di /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 keakuratan informasi setelah memodifikasi tabel partisi pada sistem yang sedang berjalan 
Saya membuat skrip untuk membantu menyelesaikan masalah ini, dengan TIDAK ADA JAMINAN .(tapi saya menguji di mesin virtual saya)
Menjalankan skrip berikut, dengan HD yang rusak pada parameter pertama, seperti pada:
[email protected]:~$ ./repart.sh sda
 Konten repart.sh :
#!/bin/bash
echo "unit: sectors" 
for i in /sys/block/$1/$1?/; do
    printf '/dev/%s : start=%d, size=%d, type=XX\n' "$(basename $i)" "$(<$i/start)" "$(<$i/size)"
done
Outputnya adalah format sfdisk. Tapi hati-hati , file ini harus dimodifikasi agar dapat digunakan. Pada tipe partisi yang diperluas =5, tingkatkan ukurannya, menggunakan semua ruang logis ditambah ruang antara awal perluasan dan awal partisi logis pertama.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=XX
/dev/sda2 : start=2040255, size=20482875, type=XX
/dev/sda3 : start=22523130, size=19197675, type=XX
/dev/sda4 : start=41720805, size=2, type=XX
/dev/sda5 : start=41720868, size=208782, type=XX
Anda harus mengubah jenis , dari XX ke nomor tipe partisi. Letakkan dapat di-boot partisi di baris pertama.
unit: sectors
/dev/sda1 : start=63, size=2040192, type=83, bootable
/dev/sda2 : start=2040255, size=20482875, type=83
/dev/sda3 : start=22523130, size=19197675, type=fd
/dev/sda4 : start=41720805, size=208845, type=5
/dev/sda5 : start=41720868, size=208782, type=82
Terapkan perubahan ini
cat repart.sfdisk | sfdisk -f /dev/sda
Baca ulang tabel partisi
partprobe 
/sbin/blockdev --rereadpt
Instal ulang grub
grub-install /dev/sda
udah coba testdisk? Itu dapat memindai disk dan memulihkan tabel partisi yang hilang, bahkan setelah Anda mem-boot ulang.
Ini tersedia dalam bentuk pra-paket untuk Debian dan mungkin juga untuk Ubuntu. Mungkin distro lain.
Jika Anda mem-boot CD gparted, mungkin ada baiknya memeriksa untuk melihat apakah sudah diinstal sebelumnya.