Mengubah ukuran partisi boot dengan enkripsi disk penuh

12

Saya telah melihat jawaban atas pertanyaan umum tentang mengubah ukuran partisi boot. Dalam kasus saya, saya telah menginstal Ubuntu 12.04 Alternate dengan enkripsi disk lengkap. Karena drive tidak dapat dipasang selama operasi pengubahan ukuran, bukankah ini akan merusak partisi utama?

Saya memiliki semuanya yang dicadangkan sehingga saya bisa berpotensi menginstal ulang, tetapi saya tidak tahu cara menentukan ukuran partisi boot sebelum enkripsi.

Tom Stone
sumber

Jawaban:

3

Saya tahu pertanyaan ini sudah lama, tetapi muncul ketika mencari masalah partisi boot kecil dan menggunakan enkripsi disk.

Penginstal Ubuntu ubiquitymenggunakan partmanuntuk mempartisi. Ketika opsi "Gunakan seluruh disk" dipilih, konfigurasi partisi berasal dari file resep partman di /lib/partman/recipes-[arch]/*dan /lib/partman/recipes/*pada live CD. Temukan resep yang digunakan oleh penginstal, dan ubah ukuran maksimum untuk /bootpartisi. Di sistem saya, resep default yang digunakan adalah /lib/partman/recipes/30atomic. Buka Terminal:

ubuntu@ubuntu:~$ sudo nano /lib/partman/recipes/30atomic

Buka bagian untuk partisi boot dan ubah angka ketiga (256 di bawah) ke ukuran yang Anda inginkan (saya sarankan setidaknya 512):

128 512 256 ext2
    $defaultignore{ }
    method{ format }
    format{ }
    use_filesystem{ }
    filesystem{ ext2 }
    mountpoint{ /boot }

Bagian ini mengatakan ukuran akan berada antara 128M dan 256M dengan prioritas 512, yang menentukan seberapa penting ukuran partisi ini terhadap yang lain.

Simpan dengan Ctrl+ O, Enter. Kemudian mulai penginstal, instal seperti biasa.

mkayaalp
sumber
2

Saya berasumsi dengan enkripsi disk penuh, maksud Anda memiliki partisi boot kecil tidak terenkripsi dan partisi lain yang merupakan volume fisik untuk enkripsi (dm-crypt). Jika tidak ada ruang di antara mereka, Anda tidak akan dapat mengubah ukuran partisi terenkripsi secara non-destruktif untuk membuat lebih banyak ruang untuk / boot.

Lihatlah jawaban saya di sini - ini mungkin membantu.

Marcin Kaminski
sumber
0

Ya, mengubah ukuran boot dimungkinkan tetapi sangat rumit. Saya hanya akan mencoba ini setelah mencadangkan SEMUA data Anda. Jika Anda membuat kesalahan potensi kehilangan data cukup tinggi. Anda perlu menyiapkan beberapa live USB / CD Ubuntu yang dapat di-boot karena Anda harus melakukan operasi ini setelah mem-boot ke USB / CD langsung.

Saya menemukan cara yang sulit beberapa waktu lalu ketika komunitas linux mengubah persyaratan mengenai ukuran yang diperlukan dari partisi boot. Sebelumnya, 100-200 MB sudah cukup untuk boot tetapi kemudian komunitas menggandakan persyaratan ukurannya. Ini berdampak pada pengguna yang mengikuti pedoman sebelumnya.

/server/334663/what-is-the-recomended-size-for-a-linux-boot-partition

Untuk persyaratan / boot saat ini saya akan merujuk Anda ke pedoman resmi.

https://help.ubuntu.com/community/DiskSpace

Pada saat penulisan ini, pedoman merekomendasikan / boot dari 250MB hingga 1GB ruang. Saya akan merekomendasikan partisi boot terpisah dengan ruang terbesar yang diperlukan. Partisi boot harus tidak dienkripsi selama proses boot. Proses boot akan memasang partisi terenkripsi yang berbeda di sepanjang jalan misalnya disk yang dienkripsi LUKS atau direktori HOME terenkripsi dan ada perbedaan antara pendekatan ini. Dalam pengalaman saya, menggunakan berbagai opsi enkripsi hard disk Ubuntu cenderung menimbulkan masalah ketika memutakhirkan Ubuntu nanti yang membutuhkan intervensi manual.

Untuk gambaran umum, saya akan merujuk Anda ke artikel ini yang saya anggap ditulis dengan baik.

'LUKS mengenkripsi beberapa partisi di Debian / Ubuntu dengan satu frasa sandi'

https://www.martineve.com/2012/11/02/luks-encrypting-multiple-partitions-on-debianubuntu-with-a-single-passphrase/

Ketika Anda menemukan kebutuhan untuk mengubah partisi Anda, saya menemukan posting ini sangat membantu.

'Cara Mengubah Ukuran Sistem File Terenkripsi LUKS'

https://ubuntuforums.org/showthread.php?t=726724

Sekarang karena gparted tidak mendukung pemindahan partisi LUKS terenkripsi, ini tidak dapat dilakukan dengan menggunakan perintah gparted dari baris perintah atau GUI. Saya telah menemukan bahwa Anda dapat menggunakan gparted untuk membuat partisi dan kemudian menggunakan dd untuk memindahkan partisi terenkripsi Anda sekitar menggunakan sektor dengan salinan sektor. Ini melibatkan kemampuan untuk menghitung ukuran partisi dalam hal sektor. Membuat kesalahan berarti kehilangan data dan instal ulang.

Dalam kasus saya, saya perlu meningkatkan ukuran partisi boot dari 537MB menjadi 1GB. Saya memerlukan ini sebagai bagian dari pembaruan saya dari Ubuntu 12.04 hingga 14.04 sehingga pemutakhiran Ubuntu dapat menemukan ruang yang cukup di / boot. Ya, Anda dapat menghapus autoremove untuk mengosongkan ruang dalam / boot tetapi persyaratan umum telah berubah jadi saya memperbesar boot untuk menyesuaikan dengan pedoman itu juga. Inilah tata letak partisi saya.

Partition Table: gpt

Number  Start   End    Size   File system  Name  Flags
 1      1049kB  538MB  537MB  fat32              boot
 2      538MB   794MB  256MB  ext2
 3      794MB   240GB  239GB

Saya memiliki disk terenkripsi LUKS di partion # 3 dan boot saya di partisi # 1 sehingga tidak ada cukup ruang untuk memperpanjang / boot. Catatan Gparted tidak dapat memindahkan partisi # 3 karena merupakan partisi terenkripsi. Untuk memperbaikinya saya membuat partisi keempat di akhir disk saya dengan ukuran yang sama di sektor dan digunakan dd untuk menyalin isi partisi # 3 ke partisi # 4. Saya merasa bermanfaat untuk mengubah ukuran root saya ke ukuran minimum yang diperlukan. Jadi, saya melakukan operasi berikut untuk mengatasi ukuran boot saya.

  1. Susutkan sistem file root di partisi # 3
  2. Mengubah ukuran partisi # 3 (menjadi lebih kecil)
  3. Membuat partisi # 4 dengan ukuran yang sama (di akhir disk)
  4. DD yang digunakan untuk menyalin sektor-sektor dari partisi # 3 ke partisi # 4
  5. Menghapus partisi # 3 untuk mengosongkan ruang pada disk
  6. Digunakan Gparted untuk mengubah ukuran dan memindahkan partisi # 1 dan # 2
  7. Membuat partisi # 3 baru dengan ukuran yang sama dengan partisi # 3 (atau partisi # 4)
  8. DD yang digunakan untuk menyalin sektor-sektor dari partisi # 4 ke partisi # 3
  9. Hapus partisi # 4
  10. Perluas ukuran partion # 3 ke ukuran # 3 yang asli
  11. Memperbarui sistem file yang terdapat dalam partisi terenkripsi # 3 ke ruang yang tersisa

Dengan cara ini saya bisa menghapus partisi # 3 dan menggunakan gparted untuk memindahkan dan memperbesar partisi # 1 dan # 2. Membaca panduan di atas harus memberikan wawasan yang cukup untuk menavigasi jalan Anda ke depan. Itu tidak ditampilkan di sini tetapi dalam menyusutkan partisi root saya, saya menghapus grup volume swap pada partisi yang sama dan menciptakannya kembali di akhir. Semua ini dilakukan saat boot ke Linux Live USB flash drive. Berikut ini adalah beberapa catatan saya yang tidak tersedia di panduan di atas.

Saya menemukan blockdev berguna dalam menampilkan ukuran partisi di sektor. Ini membantu saya karena saya sedang menghitung ukuran sektor.

sudo blockdev --getsize /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p2
499712

Perintah Gparted 'unit s' akan menampilkan tabel partisi Anda di sektor. Semua ukuran partisi, penghapusan, dan pembuatan dilakukan menggunakan Gparted. Dengan cara ini Anda bisa melakukan semua matematika di sektor. 'Unit compact' akan beralih kembali ke format MB / GB, jika Anda ingin melihat seperti apa sektor matematika itu.

(parted) unit s
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  456656896s  455106561s

Perintah resize2fs memiliki opsi bagus untuk mengubah ukuran ke Minimum. Juga, saya menghapus grup volume swap saya selama bagian ini.

ubuntu@ubuntu:~$ sudo resize2fs -M -p /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Resizing the filesystem on /dev/ubuntu-vg/root to 2261211 (4k) blocks.
Begin pass 3 (max = 1600)
Scanning inode table          XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
The filesystem on /dev/ubuntu-vg/root is now 2260992 blocks long.

Ketika Anda mengubah ukuran tabel partisi, kembali dan perbarui gparted. Digunakan 4096 * 2260992 dan kemudian blockdev untuk memeriksa matematika di sini. Ini adalah perintah gparted.

(parted) resizepart 3
End?  [224419843s]? 225970179s 
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? yes                                                               
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     1050623s    1048576s    fat32              boot
 2      1050624s  1550335s    499712s     ext2
 3      1550336s  225970179s  224419844s

Perhatikan ukuran jumlah sektor dari partisi # 3 lebih kecil dari daftar asli saya yaitu Dengan cara ini Anda dapat menggunakan gparted untuk membuat partisi # 4 sebelum salinan DD. Penyusutan membebaskan lebih banyak ruang disk untuk salinan itu.

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=1550336 count=224419844 seek=244437218
224419844+0 records in
224419844+0 records out
114902960128 bytes (115 GB) copied, 2146.1 s, 53.5 MB/s

Setelah copy DD, lanjutkan dan perbesar ukuran partisi / boot Anda. Anda akan menghapus partisi # 3 asli dan kemudian menciptakan kembali partisi # 3 di lokasi sektor baru setelah partisi # 1 dan # 2 diperbesar. Sekali lagi blockdev digunakan untuk mengukur ukuran sektor. Saya membuat partisi # 3 ini dengan ukuran yang sama dengan partisi # 4 yang lebih kecil dari # 3 pada awalnya. Gunakan DD untuk menyalin sektor # 4 ke partisi # 3.

ubuntu@ubuntu:~$ sudo dd if=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 of=/dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500 bs=512 skip=244437218 count=224419844 seek=9242624

Setelah menyalin, hapus partisi # 4 dan perluas ukuran partisi # 3. Dalam kasus saya, saya baru saja mengembalikan ke partisi # 3 untuk ukuran itu ketika saya mulai. Saya punya cukup ruang untuk melakukan ini.

(parted) resizepart 3                                                     
End?  [464349185s]? 464349184s                                           
Warning: Shrinking a partition can cause data loss, are you sure you want to continue?
Yes/No? y                                                                 
Device /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500p3 not found
device-mapper: table ioctl on  failed: No such device or address
(parted) p                                                                
Model: Linux device-mapper (mirror) (dm)
Disk /dev/mapper/isw_dcgdihhid_SSD_CRUCIAL_M500: 468857096s
Sector size (logical/physical): 512B/4096B
Partition Table: gpt

Number  Start     End         Size        File system  Name  Flags
 1      2048s     4192255s    4190208s    fat32              boot
 2      5146624s  9242623s    4096000s    ext2
 3      9242624s  464349184s  455106561s

Ketika gparted meningkatkan ukuran partisi, itu tidak memperbarui sistem file. Catatan sistem file terdapat di dalam partisi terenkripsi sehingga harus dibuka dan dipasang untuk membuat perubahan ini. Gunakan perintah berikut untuk memperbaikinya. Ini dapat dilakukan pada sistem live jika perlu.

user@zagyg:/$ sudo resize2fs /dev/ubuntu-vg/root
resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/ubuntu-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 13
The filesystem on /dev/ubuntu-vg/root is now 54266880 blocks long.

Kesimpulannya, sementara Gparted tidak mendukung operasinya secara asli, tetapi itu adalah alat yang luar biasa berguna untuk mengelola partisi. Menurut pendapat saya sedikit lebih berguna daripada fdisk. Antara Gparted dan DD saya dapat mengatur partisi saya dan kemudian hanya menggunakan alat Ubuntu untuk meningkatkan dari 12,04 LTS ke 14,04 LTS.

Dokter
sumber
Partisi boot tidak harus tidak dienkripsi. Saya tidak memiliki partisi / boot terpisah, itu hanya bagian dari rootf dienkripsi utama saya. Grub dapat boot dengan konfigurasi seperti itu. II boot dari partisi 1 MiB EFI saya Dan sementara mengubah ukuran / boot kira-kira mengambil langkah-langkah ini, tidak perlu melakukannya secara manual. Anda bisa menggunakan KDE Partition Manager 3.0 untuk melakukan semua langkah ini. Misalnya saya melakukan beberapa operasi di sini pada rootfs terenkripsi saya dari dalam sistem bahkan tanpa menggunakan live cd youtube.com/watch?v=FKCQ7pJN1vY Meskipun live cd diperlukan untuk memindahkan partisi luks.
Andrius Štikonas