Saya baru saja melakukan ini dengan cara yang lebih mudah:
# sfdisk -d /dev/sdb > sdb.bkp
tinggalkan salinan untuk keamanan
# cp sdb.bkp sdb.new
sekarang edit sdb.new mengubah HANYA urutan baris dan nomor partisi, seperti dalam kasus saya:
dari
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 1026048, size=975747120, Id=83
/dev/sdb2 : start= 2048, size= 204800, Id=83
/dev/sdb3 : start= 206848, size= 819200, Id= b
/dev/sdb4 : start= 0, size= 0, Id= 0
untuk
# partition table of /dev/sdb
unit: sectors
/dev/sdb1 : start= 2048, size= 204800, Id=83
/dev/sdb2 : start= 206848, size= 819200, Id= b
/dev/sdb3 : start= 1026048, size=975747120, Id=83
/dev/sdb4 : start= 0, size= 0, Id= 0
lalu membuangnya kembali ke tabel partisi disk?
# sfdisk /dev/sdb < sdb.new
Urutan penomoran saya rusak setelah saya mengecilkan &menggeser ke kanan satu-satunya partisi (sdb1) untuk menambahkan dua partisi yang lebih kecil di awal disk menggunakan gparted
.
Jika perintah terakhir tidak berfungsi, seperti dalam kasus saya, ubah menjadi:
# sfdisk --no-reread -f /dev/sdb < sdb.new
FYI, itu ide yang buruk dan Anda bisa kehilangan segalanya. Jika Anda masih ingin melakukannya, berikut langkah-langkahnya:
- Jangan lakukan. Jika ini tidak membantu, maka:
-
Gunakan
sfdisk
alat:Pertama, buat cadangan tabel partisi menggunakansfdisk -d /dev/sda > sda.out
Lalu lakukanlah:
sfdisk /dev/sda -O sda-partition-sectors.save
Anda akan melihat sesuatu seperti ini
Checking that no-one is using this disk right now ... OK Disk /dev/sda: 1018 cylinders, 124 heads, 62 sectors/track Old situation: Units = cylinders of 3936256 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 0+ 5 6- 23063+ 83 Linux /dev/sda2 6 1017 1012 3890128 83 Linux /dev/sda3 0 - 0 0 0 Empty /dev/sda4 0 - 0 0 0 Empty Input in the following format; absent fields get a default value. <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s> Usually you only need to specify <start> and <size> (and perhaps <type>). /dev/sda1 :
Sekarang meminta Anda untuk memberikan detail baru untuk partisi 'sda1'. Jadi harus kasih nomor sda2 disini. Jadi, saya taruh '6 1012' di sini dan tekan Enter:
/dev/sda1 :6 1012
/dev/sda1 6 1017 1012 3890128 83 Linux
/dev/sda2 :
Sekarang periksa jika angka yang dicetak setelah Anda menekan Enter adalah persis sama seperti yang dicetak sebelumnya untuk sda2. Jika tidak apa-apa, lanjutkan dengan memberikan nomor baru untuk sda2:
/dev/sda2 :0
/dev/sda2 0+ 5 6- 23063+ 83 Linux
/dev/sda3 :
Kali ini cukup memasukkan "0" dalam kasus saya - tetapi Anda harus memastikan nomornya tidak kacau di milik Anda.
Selanjutnya, lanjutkan dengan partisi lainnya dengan cara yang sama. Jika Anda sudah mencapai akhir disk, menekan Enter sudah cukup. Terakhir, periksa kembali apakah semua nomor sudah benar dan simpan tabel partisi (atau tidak). Jika Anda mengacaukan sesuatu, lihat man sfdisk
dan deskripsi opsi '-d', '-O' dan '-I'.
Perhatikan juga, bahwa setelah Anda membuat perubahan gila, Anda mungkin perlu menjalankan 'sinkronisasi' agar partisi dapat dibaca ulang sebelum Anda mencoba memasangnya.
Semua solusi yang ada terlihat sangat aman, namun akibatnya cukup rumit.
Saya ingin menyusun ulang semua partisi saya agar rapi.
Jika Anda lebih berpengalaman, memiliki data yang tidak penting atau dicadangkan, dan dengan senang hati memperbaiki masalah apa pun sebagai hasilnya, Anda dapat mem-boot dari Live CD dan melakukannya dengan cara ini:
sudo fdisk /dev/sdX
lalu:
x
untuk masuk ke Mode Pakarf
untuk memperbaiki urutan drive (mungkini
untuk mengabaikan peringatan jika diperlukan)r
untuk kembali ke mode normalw
untuk menulis perubahan ke disk dan keluar
Tambahan
Saya tidak ingat persis langkah selanjutnya karena saya hanya melakukannya sekali dan belum menguji ulang, tetapi karena saya juga memindahkan instalasi, saya juga memasang partisi dan menyalin semua file:
sudo mkdir /mnt/sda4
sudo mount /dev/sda4 /mnt/sda4
sudo mkdir /mnt/sda5
sudo mount /dev/sda5 /mnt/sda5
date;cp -a /mnt/sda4/* /mnt/sda5;date
Dan kemudian dapatkan id partisi:
sudo blkid
dan memperbarui berikut ini untuk mencerminkan nilai UUID partisi baru:
/mnt/sda5/boot/grub/grub.cfg
/mnt/sda5/etc/fstab
Saya kemudian memperbarui GRUB2:
sudo grub-install --root-directory=/mnt/sda5 /dev/sda