Apakah partisi / boot selalu diperlukan?

30

Haruskah saya membuat /bootpartisi setiap kali saya menginstal distro Linux?

Apakah ada perbedaan antara memiliki /bootpartisi dan membuat /partisi tersebut dapat di-boot?

pengguna1301428
sumber
Saya pikir lebih aman untuk menjaga / mem-boot partisi secara terpisah untuk menghindari menimpa bootloader karena kesalahan. Jika saya tidak salah boot loader harus berada di silinder pertama disk untuk memastikan proses boot akan berfungsi dengan baik karena BIOS selalu memuat Bytes pertama dari disk dengan asumsi ada kode yang dapat menangani kontrol lebih lanjut dan mampu untuk memuat sistem operasi.
mnmnc
1
Ini tentu saja bukan keharusan, tetapi seperti yang dikatakan dalam komentar di atas itu adalah praktik yang baik.
Hamed Momeni

Jawaban:

29

Untuk menjawab pertanyaan langsung: tidak , partisi terpisah untuk /boottentu tidak diperlukan dalam setiap kasus.

Namun , bahkan jika Anda tidak membagi apa pun, umumnya disarankan untuk memiliki partisi terpisah /, /bootdan bertukar. Saya juga sangat menyarankan untuk meletakkan /homedi partisi yang terpisah juga, bahkan jika Anda tidak membagi hierarki sistem file lebih jauh.

Alasan untuk menempatkan / boot pada partisi yang terpisah dari sistem file root biasa adalah bahwa Anda dapat mengurangi kompleksitas sistem file pada disk, yang mengurangi permintaan pada boot loader untuk bootstrap kernel dan disk RAM awal. Ini menjadi sangat menarik jika Anda menjalankan pengaturan non-sepele - mungkin Anda menjalankan RAID, atau sistem file yang tidak biasa seperti ZFS pada partisi root, atau partisi root yang dienkripsi. Partisi untuk / boot kemudian dapat diformat menggunakan eg ext2fs biasa. Karena partisi hanya perlu kecil (beberapa ratus megabyte cukup; / boot pada sistem saya saat ini adalah 100 MB, dan saya tidak merasakan kendala dari itu), kelemahan sistem file non-journaled seperti kebutuhan ext2 tidak terlalu bagus karena ceknya begitu cepat, dan kesederhanaan relatif dari sistem file serta sebagian besar statis mungkin membuat korupsi tidak terdeteksi lebih kecil kemungkinannya. Bahwa boot loader tidak perlu memahami secara asli sistem file eksotis atau pengaturan disk adalah keuntungan lain yang mungkin.

Alasan untuk menempatkan / rumah di partisi yang terpisah adalah bahwa, bahkan jika ada yang tidak benar dan mulai mengisinya (atau jika Anda melakukannya sendiri), Anda tidak pernah mengambil risiko itu menyebabkan masalah untuk proses non-pengguna (yang jarang kehabisan / home) atau proses boot itu sendiri. Selain itu, instal ulang OS, atau alihkan distribusi, menjadi jauh lebih mudah jika Anda cukup memberi tahu pemasang untuk meninggalkan / beranda sebagaimana adanya dan memformat ulang /untuk mengisinya dengan file-file sendiri. Sebagai upaya pemulihan terakhir jika terjadi kesalahan perangkat lunak, ini dapat membuat perbedaan besar.

Menjalankan file swap bukanlah pengaturan yang disarankan di Linux, dan saya bahkan tidak yakin dukungan kernel distribusi yang paling umum(atau izinkan) swap berbasis file. Ada beberapa alasan untuk ini, satu alasan besar adalah kinerja (sebagian besar karena risiko fragmentasi). Swap sudah sangat lambat dibandingkan dengan RAM (ini lebih merupakan ukuran sementara daripada perbaikan), jadi ada sedikit alasan untuk membuatnya lebih lambat dengan mempertaruhkan fragmentasi. Dan partisi swap dapat dengan aman dibagikan di antara distribusi Linux dalam lingkungan multi-boot; mungkin bukan pertimbangan dalam kasus umum, tetapi tentu pertimbangan untuk beberapa. Partisi swap juga dapat ditempatkan pada disk fisik terpisah dengan karakteristik berbeda; mungkin SSD saat ini, atau drive 10krpm yang menjalankan saluran pengontrol terpisah (yang terakhir kurang menjadi pertimbangan saat ini ketika setiap disk SATA berada di saluran yang terpisah, tetapi dapat membuat perbedaan kembali di masa PATA).

Secara pribadi hari ini, saya memisahkan /, / boot, dan swap, dengan / pada sistem saya saat ini menjadi 100 GB (Saya hampir tidak menggunakan semua itu; penggunaan saat ini adalah 8,9 GB, dan itu memberi saya semua yang saya butuhkan dalam hal perangkat lunak dan kemudian beberapa). Sisa dari disk utama terdiri dari sistem file tunggal, yang oleh konvensi pribadi saya mount di / da ( disk a). Disk kedua adalah / db, lalu / dc dan sebagainya. (Saya ragu FHS benar-benar menyetujui skema ini, tetapi itu berfungsi dengan baik untuk saya dalam praktiknya.) Saya kemudian mengikat-mount / home ke / da, artinya saya dapat memindahkan direktori fisik tanpa harus khawatir tentang memperbarui setiap jalur referensi yang merujuk atau partisi ulang hanya karena saya menyadari bahwa saya menjalankan sedikit ruang disk untuk / home.

sebuah CVn
sumber
3
Selain itu, terpisah / boot hanya diperlukan jika partisi root dienkripsi (dan boot jelas-jelas bersih)
usr-local-ΕΨΗΕΛΩΝ
@djechelon Saya pikir itu termasuk dalam "pengaturan non-sepele", tapi saya akan mengedit contoh khusus Anda masuk
CVn
Saya melihat ke ZFS, dan setiap panduan tampaknya menunjukkan bahwa ketika menggunakan ZFS pada root, Anda memerlukan sesuatu seperti ext * on / boot.
CMCDragonkai
1
@ CMCDragonkai Itu tidak mengubah jawaban saya bahwa "tidak, partisi terpisah untuk / boot tentu tidak diperlukan dalam setiap kasus. ".
CVn
3

Saya tidak berpikir itu wajib lagi. Di masa lalu, itu perlu karena beberapa keterbatasan dengan BIOS. Tidak mungkin memiliki partisi yang dapat di-boot setelah 8 atau 64 Go (saya tidak ingat persis). Kemudian, jika Anda ingin memiliki dual boot, Anda bisa meletakkan partisi kecil pertama (/ boot), dan partisi windows bootable, dan setelahnya, partisi Linux lainnya. Ada waktu yang lama, tidak ada direktori / boot sama sekali. Kernel langsung di /.

Thierry Chich
sumber
1
Kernel kadang-kadang disimpan secara langsung di root (beberapa distribusi mungkin masih melakukan ini), tetapi Anda masih bisa membutuhkan hal-hal lain seperti initrd, System.map, konfigurasi bootloader dll, yang lebih memilih hierarki sendiri.
CVn
2

Perbedaannya adalah optimasi sistem file. Secara umum setiap partisi memiliki tabel sendiri untuk file, deskriptor, dll. Anda dapat menginstal Linux pada satu partisi '/' tanpa '/ boot', '/ swap', / usr 'dll, tetapi tabel internal partisi tunggal ini akan segera tumbuh besar dan beberapa operasi akan menjadi agak lambat. Jadi partisi yang berbeda digunakan untuk menyediakan wadah yang terpisah dan dioptimalkan untuk berbagai jenis tugas.

grigoryvp
sumber
Set lengkap tabel inode jarang digunakan di luar pemeriksaan sistem file. Paling sering, hanya tabel untuk direktori tertentu yang dirujuk. Mereka tidak berbeda ukuran berdasarkan ukuran partisi.
CVn
Ukuran didasarkan pada partisi usage, bukan ukuran. inodeAdalah daftar, jadi lebih banyak inodes = sedikit lebih banyak waktu untuk pencarian file, tambahkan dll. Di mana tidak ada perbedaan besar antara partisi kosong dan partisi dengan jutaan file, tetapi untuk operasi seperti boot atau swap perbedaan apa pun yang penting.
grigoryvp
Saya tidak melihat bagaimana komentar Anda bertentangan dengan pendapat saya. Dan partisi swap tidak memiliki konsep inode, karena tidak berurusan dengan file. Ada perbedaan besar antara /swapdan swap.
CVn
0

Tidak, saya pikir partisi / boot tidak diperlukan karena beberapa alasan:

  • Anda mungkin ingin / mem-boot folder agar tidak terlalu kecil dan memasukkannya ke /
  • Tidak perlu membuat partisi karena file dan folder / boot tidak sering diperbarui dan diakses. Ini tidak seperti folder / tmp atau / swap. program tidak menulis ke / boot.
  • / boot hanya digunakan selama startup dan pembaruan Kernel ketika gambar initramfs diperbarui.
  • Anda dapat memasukkan / boot ke / root dalam satu array RAID 5 dan itu akan bekerja dengan GRUB2. Tambahkan GRUB2 ke MBR untuk setiap drive. Anda dapat mem-boot dari drive ke-2, ke-3 ... drive jika drive ke-1 mati.
  • Kurang tunggangan = lebih sedikit uuid's = lebih banyak visibilitas = lebih banyak kesederhanaan
Nicolas Guérinet
sumber