UEFI / GPT dan memindahkan C: \ partisi

3

Saya ingat bahwa ketika mobo digunakan untuk menggunakan BIOS dan bootloader terletak di MBR, memindahkan partisi Windows menyebabkan sistem gagal untuk boot. Saya baru saja selesai memindahkan (tidak sengaja) partisi C (mencoba mengubah ukurannya) pada PC teman yang memiliki tabel partisi GPT dan motherboard UEFI dan - yang mengejutkan dan menyenangkan, PC memulai dengan sempurna tanpa mengeluh tentang perubahan sektor pertama partisi (dan teman saya tidak marah pada saya). Saya percaya itu karena bootloader UEFI menggunakan UID partisi alih-alih alamat.

Ini membuat saya bertanya-tanya apakah ini berarti saya dapat dengan bebas memindahkan partisi OS pada sistem GPT. Apakah ini hanya berlaku untuk Windows atau GRUB juga?

Manchineel
sumber
2
Pertanyaan ini cukup jelas bagi saya, dan karenanya IMHO tidak boleh ditutup.
Rod Smith

Jawaban:

5

Saya percaya itu karena bootloader UEFI menggunakan UID partisi alih-alih alamat.

Sebagian, tapi tidak sepenuhnya benar, benar. Pemuat boot mode-BIOS, seperti yang dinyatakan oleh pernyataan Anda di atas, sering kali mengandalkan nomor sektor untuk membantu mengidentifikasi kode tindak lanjut. Yaitu, BIOS membaca MBR dan mengeksekusi kode apa pun yang dikandungnya. MBR terlalu kecil untuk menampung boot loader yang benar-benar fleksibel, sehingga MBR meneruskan kontrol ke kode yang terletak di tempat lain, biasanya mengidentifikasinya dengan jumlah sektor dengan menemukan partisi dengan flag boot yang ditetapkan dan menjalankan kode di EBR (sektor pertama ) dari partisi itu. Kode boot loader sekunder ini dapat mengulangi proses ini, lagi-lagi sering mengandalkan nomor sektor. Dengan demikian, memindahkan partisi atau mengubah ukurannya dari titik awal dapat membuat OS tidak bisa di-boot karena kode boot loader itu sendiri dipindahkan.

Di EFI, sebaliknya, boot loader adalah tidak disimpan di MBR atau di EBR partisi. Sebagai gantinya, boot loader disimpan sebagai file program EFI di Partisi Sistem EFI (ESP). File-file program ini dapat sebesar yang diperlukan (hingga batas yang ditentukan oleh ukuran file, ukuran RAM, dll.), Sehingga boot loader tidak perlu dipisah-pisahkan dengan cara yang aneh sehingga bootloader boot BIOS biasanya dibagi. Selain itu, EFI memahami partisi, tidak seperti BIOS, sehingga boot loader EFI-mode dapat mereferensikan partisi jika perlu.

Meskipun boot loader EFI mungkin menemukan partisi dengan itu GUID atau dengan cara lain, itu bukan perbedaan utama yang penting untuk pertanyaan Anda. Boot loader mode-BIOS sering rusak ketika Anda memindahkan partisi karena kode boot loader itu sendiri bergerak; tetapi dalam EFI, boot loader ada dalam file, bukan kode yang dikunci ke sektor tertentu. Dengan demikian, memindahkan partisi OS tidak memindahkan kode boot loader. Bahkan jika Anda memindahkan ESP (tempat boot loader hidup), EFI memahami partisi dan sistem file FAT, dan dengan demikian dapat terus menemukan boot loader, asalkan informasi pengidentifikasi ESP dan nama file boot loader tidak berubah hasilnya.

Ini membuat saya bertanya-tanya apakah ini berarti saya dapat dengan bebas memindahkan partisi OS pada sistem GPT. Apakah ini hanya berlaku untuk Windows atau GRUB juga?

Sebagai aturan umum, lebih aman untuk memindahkan partisi pada sistem berbasis EFI daripada pada sistem berbasis BIOS. Saya tidak akan mengatakan itu benar-benar 100% aman. Pertama, selalu ada risiko bahwa operasi pemindahan partisi akan mengakibatkan kerusakan sistem file. Itu hanya peringatan standar setiap kali membahas operasi seperti itu. Masalah yang lebih penting dari pertanyaan Anda adalah bahwa boot loader dapat melakukan apa pun yang mereka inginkan dengan cara apa pun yang mereka inginkan. Meskipun saya tidak mengetahui contohnya, ini adalah bootloader berbasis EFI bisa mengandalkan nomor sektor mentah untuk mengidentifikasi kernel OS, yang akan membuatnya tidak aman untuk memindahkan partisi tempat kernel berada. Jika boot loader menggunakan fitur-fitur seperti nomor partisi untuk mengidentifikasi partisi dengan kernel, dan jika memindahkan partisi mengubah nomor partisi, maka proses booting bisa gagal setelah memindahkan partisi. OTOH, memindahkan partisi mungkin tidak menimbulkan masalah jika nomor partisi tidak berubah. Dengan demikian, keamanan operasi pemindahan partisi tergantung pada boot loader dan detail dari apa yang terjadi ketika Anda memindahkan partisi.

Rod Smith
sumber