GNU/Linux >> Belajar Linux >  >> Linux

Apa tujuan dari kode partisi rumah Linux 8302?

Tidak ada tujuan, hanya kenyamanan, dan Anda dapat menggunakan kode apa pun yang Anda suka.

Di bawah ini saya kutip jawaban yang bagus dari Rod Smith, penulis GPT fdisk, yang menjelaskan keseluruhan subjek:

jawaban kyodake benar, tetapi juga agak berpusat pada MBR. Di bawah GPT, prinsip yang sama berlaku -- yaitu, kode tipe partisi mengidentifikasi tujuan yang dimaksudkan dari sebuah partisi. Perbedaannya adalah kode jenis GPT adalah GUID 128-bit, vs. kode 8-bit yang digunakan di bawah MBR. Sifat GUID berarti tidak perlu mendaftarkan kode dengan otoritas pusat untuk menghindari benturan; dua GUID secara statistik sangat tidak mungkin identik secara tidak sengaja.

AFAIK, tidak ada gudang resmi kode tipe GPT, tetapi didokumentasikan di halaman Wikipedia tentang GPT. Salah satu kelemahan kode tipe GPT adalah, sebagai GUID, kode ini panjang dan canggung -- misalnya, 0FC63DAF-8483-4772-8E79 -3D69D8477DE4 untuk data sistem file Linux, vs. 0x83 untuk setara MBR. Oleh karena itu, sebagian besar alat untuk mempartisi disk GPT menggunakan beberapa bentuk "singkatan" atau "terjemahan bahasa alami" dalam antarmuka penggunanya. Saya adalah penulis GPT fdisk, dan tujuan saya menulis adalah untuk membuat sesuatu yang mirip dengan (MBR) fdisk mungkin, saya mengambil pendekatan menggunakan kode MBR sebagai basis; namun, karena korespondensi antara kode tipe GPT dan MBR bukan 1:1, saya mengalikan kode tipe MBR dengan 0x100 untuk mendapatkan padanan GPT. Dengan demikian, MBR's 0x83 menjadi 8300. Ini juga memungkinkan kode lanjutan terkait yang tidak ada di MBR, seperti 8301, 8302, dll. diakui secara sewenang-wenang untuk orang yang tidak mengetahui kode MBR. Secara internal, GPT fdisk menerjemahkan kode ini ke GUID. Anda dapat melihat GUID sebenarnya dengan melihat informasi detail partisi (melalui i opsi di gdisk , contohnya). Anda juga dapat memasukkan GUID arbitrer daripada menggunakan kode empat karakter GPT fdisk, jika Anda suka atau jika Anda perlu menggunakan kode yang tidak didukung GPT fdisk.

Alat lain menggunakan pendekatan lain. Pustaka libparted (dan dengan demikian parted , GParted, dan alat lain berdasarkan libparted) menerjemahkanbeberapa ketik kode untuk "menandai" dan sepenuhnya menyembunyikan kode lain. Ini membantu menyederhanakan beberapa hal untuk beberapa pengguna, tetapi membuat beberapa tugas menjadi tidak mungkin -- misalnya, Anda tidak dapat menyetel kode jenis arbitrer dengan apa pun berdasarkan libparted. Utilitas Disk OS X menerjemahkan GUID yang dikenal menjadi deskripsi teks biasa. (IIRC, saat Anda membuat partisi, kode jenis yang sesuai akan ditetapkan berdasarkan sistem file yang dibuat dalam partisi, mirip dengan yang dilakukan GParted.)

Sebagian besar, Linux tidak menggunakan kode jenis, baik untuk MBR atau GPT. Artinya, Anda dapat meletakkan sistem file Linux standar Anda pada partisi (GPTfdisk) 8300, atau menggunakan 0700 (seperti yang biasa terjadi di masa lalu), atau menetapkan GUID acak Anda sendiri. Komentar serupa berlaku untuk RAID, LVM,swap, dan tipe partisi lainnya. Ada beberapa pengecualian untuk aturan ini. Pertama, penginstal distribusi sering melihat dan mengatur kode jenis, jadi Anda mungkin memerlukan kode jenis yang tepat pada partisi sebelum digunakan dengan benar. Pengecualian lain adalah bahwa systemd mulai menggunakan kode jenis sebagai cadangan jika /etc/fstab tidak dikonfigurasi dengan benar. (Di situlah sebagian besar kode 830x GPT fdisk berasal -- mereka adalah bagian dari Spesifikasi Partisi yang Dapat Ditemukan, yang merupakan inisiatif Freedesktop/systemd.) Saat ini, Ubuntu hanya menggunakan kode tipe sistem file Linux utama (8300 dalam GPT fdisk) untuk sistem file, ditambah kode yang sesuai untuk LVM, RAID, swap, dll. Pengecualian besar untuk aturan "Linux tidak menggunakan kode tipe" adalah kode BIOSBoot Partition (21686148-6449-6E6F-744E-656564454649; ef02 di GPTfdisk atau bios_grub bendera di libparted). Kode jenis ini mengidentifikasi sebuah partisi yang digunakan oleh GRUB, dan saat Anda menjalankan grub-install , GRUB akan menginstal sebagian dari dirinya sendiri ke partisi itu. Jika Anda menginstal GRUB pada sistem booting BIOS dengan disk GPT, Partisi Boot BIOS biasanya harus ada. (Namun, ada beberapa cara untuk mengakali aturan ini.) Lebih penting lagi, jika Anda salah menyetel kode jenis ini pada partisi yang salah, partisi tersebut akan rusak saat Anda menginstal GRUB! Saya telah melihat beberapa orang melakukan kesalahan tersebut di berbagai forum online.

Di mana kode tipe menjadi lebih penting adalah ketika berhadapan dengan OS lain. Windows dan OS X, misalnya, cenderung tidak menyentuh partisi dengan kode tipe yang tidak mereka kenali. Daftar kode jenis mereka mengecualikan kode jenis khusus Linux yang umum, jadi menggunakan kode jenis khusus Linux membantu mengurangi risiko Windows atau OS X membuang instalasi Ubuntu Anda. OS ini tidak peduli jika Anda menggunakan kode GPT fdisk8300 atau fd00. Masalah dapat muncul jika Anda menggunakan kode yang dikenali oleh OS lain tersebut. Misalnya, pada suatu waktu GUID tipe sistem file Linux (0FC63DAF-8483-4772-8E79-3D69D8477DE4) tidak ada. Saya membuatnya dan mendorongnya ke GPT fdisk dan libparted saya sendiri karena praktik umum menggunakan kode jenis "Microsoft BasicData" (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7) menyebabkan masalah dalam pengaturan dual-boot. Secara khusus, alat Windows tertentu akan mengira partisi Linux adalah partisi Windows yang rusak atau tidak diinisialisasi dan menawarkan untuk menyiapkannya. Kesalahan pengguna pada prompt ini akan menjadi bencana. Lihat halaman saya ini untuk informasi lebih lanjut tentang subjek ini.


Tujuan dari kode tipe partisi Linux yang didefinisikan dalam Discoverable Partitions Specification adalah untuk membuat tulisan /etc/fstab usang untuk sebagian besar sistem. Ini adalah kasus konvensi tentang konfigurasi.

Systemd menambahkan systemd-gpt-auto-generator kembali pada tahun 2014 dalam versi 211. Generator ini membuat .mount unit dari partisi GPT pada drive boot.

Jadi Anda dapat menggunakan kode ini pada drive yang dipartisi GPT hari ini, tidak menyentuh /etc/fstab sama sekali (bisa benar-benar kosong), dan masih memiliki partisi terpisah untuk /home , /srv , /var , /var/tmp yang akan ditemukan dan dipasang secara otomatis. Partisi ini dapat memiliki sistem file yang didukung. Mereka juga dapat dienkripsi LUKS. Partisi swap juga ditemukan secara otomatis.

Untuk kenyamanan lebih lanjut, generator juga memasang Partisi Sistem EFI di /boot dalam banyak kasus.

Secara teoritis Anda juga dapat membuatnya menemukan / (root) partisi, tapi itu sedikit lebih rumit. Saya kira itu masih membutuhkan initramfs di sebagian besar situasi. Jika tidak, root=/dev/whatever parameter kernel tetap diperlukan.


Perlunya kode untuk /home dan partisi lainnya dinyatakan di sini oleh Rod Smith yang membuat dan hingga sekarang (2020) berkontribusi pada kode gpt fdisk. Ini dari dia di tahun 2011:

Saya baru-baru ini menemukan bahwa ketika Windows membaca disk GPT dengan partisi Linux di dalamnya, partisi tersebut diberikan huruf drive dan muncul sebagai tidak diformat. Situasi ini dapat terjadi dengan disk yang dapat dilepas atau ketika Linux dan Windows melakukan boot ganda pada komputer berbasis UEFI. Karena UEFI menjadi lebih umum, situasi ini juga menjadi lebih umum. Ini menurut saya sebagai bencana yang menunggu untuk terjadi; cepat atau lambat, seseorang akan membuang instalasi Linux dengan memilih untuk memformat partisi Linux di Windows.

Masalah ini terjadi karena alat pemartisian Linux (libparted dan fdisk GPT saya sendiri) memberi partisi Linux kode tipe partisi yang sama GUID yang digunakan oleh Windows untuk partisi sistem berkasnya (EBD0A0A2-B9E5-4433-87C0-68B6B72699C7). Linux memiliki kode jenis GUID sendiri untuk jenis partisi lain, seperti RAID, LVM, dan ruang swap.

Jadi, menurut saya Linux memerlukan kode tipe partisi GUID sendiri untuk partisi sistem file pada disk GPT, sama seperti Linux memiliki kode tipe partisi MBR sendiri untuk sistem file (0x83 pada MBR). Saya ingin menerapkan perubahan seperti itu dalam program saya sendiri, tetapi saya tidak ingin melakukan ini secara sepihak. Dengan asumsi tidak ada protokol yang tidak biasa untuk membuat GUID kode tipe partisi, saya sarankan yang berikut digunakan:

0FC63DAF-8483-4772-8E79-3D69D8477DE4

Itu hanya GUID unik partisi untuk partisi yang saya buat pada disk uji menggunakan GNU Parted 3.0.

Jika Anda melihat kode parttypes.cc, Anda akan melihat semua kode untuk Linux dan lainnya.

Daftar kode partisi Linux

0x8200, "0657FD6D-A4AB-43C4-84E5-0933C84B4F4F", "Linux swap"); // Linux swap (or Solaris on MBR)
0x8300, "0FC63DAF-8483-4772-8E79-3D69D8477DE4", "Linux filesystem"; // Linux native
0x8301, "8DA63339-0007-60C0-C436-083AC8230908", "Linux reserved";
0x8302, "933AC7E1-2EB4-4F13-B844-0E14E2AEF915", "Linux /home"; // Linux /home (auto-mounted by systemd)
0x8303, "44479540-F297-41B2-9AF7-D131D5F0458A", "Linux x86 root (/)"; // Linux / on x86 (auto-mounted by systemd)
0x8304, "4F68BCE3-E8CD-4DB1-96E7-FBCAF984B709", "Linux x86-64 root (/)"; // Linux / on x86-64 (auto-mounted by systemd)
0x8305, "B921B045-1DF0-41C3-AF44-4C6F280D3FAE", "Linux ARM64 root (/)"; // Linux / on 64-bit ARM (auto-mounted by systemd)
0x8306, "3B8F8425-20E0-4F3B-907F-1A25A76F98E8", "Linux /srv"; // Linux /srv (auto-mounted by systemd)
0x8307, "69DAD710-2CE4-4E3C-B16C-21A1D49ABED3", "Linux ARM32 root (/)"; // Linux / on 32-bit ARM (auto-mounted by systemd)
0x8308, "7FFEC5C9-2D00-49B7-8941-3EA10A5586B7", "Linux dm-crypt";
0x8309, "CA7D7CCB-63ED-4C53-861C-1742536059CC", "Linux LUKS";
0x830A, "993D8D3D-F80E-4225-855A-9DAF8ED7EA97", "Linux IA-64 root (/)"; // Linux / on Itanium (auto-mounted by systemd)
0x830B, "D13C5D3B-B5D1-422A-B29F-9454FDC89D76", "Linux x86 root verity";
0x830C, "2C7357ED-EBD2-46D9-AEC1-23D437EC2BF5", "Linux x86-64 root verity";
0x830D, "7386CDF2-203C-47A9-A498-F2ECCE45A2D6", "Linux ARM32 root verity";
0x830E, "DF3300CE-D69F-4C92-978C-9BFB0F38D820", "Linux ARM64 root verity";
0x830F, "86ED10D5-B607-45BB-8957-D350F23D0571", "Linux IA-64 root verity";
0x8310, "4D21B016-B534-45C2-A9FB-5C16E091FD2D", "Linux /var"; // Linux /var (auto-mounted by systemd)
0x8311, "7EC6F557-3BC5-4ACA-B293-16EF5DF639D1", "Linux /var/tmp"; // Linux /var/tmp (auto-mounted by systemd)

Linux
  1. Apa tujuan dari file .bash_profile di bawah Direktori Beranda Pengguna Di Linux?

  2. Apa itu Kode Keluar Bash di Linux

  3. Apa tujuan dari grup "roda" di Linux?

  1. Apa tujuan dari file .bashrc di Linux?

  2. Apa cara yang benar untuk menginstal jdk di linux

  3. Apa yang setara dengan perintah Linux sudo fdisk -l di MacOS?

  1. Linux vs. Unix:Apa bedanya?

  2. Apa board berkemampuan Linux paling sederhana yang bisa saya buat di rumah?

  3. Apa id partisi / tipe sistem file untuk UDF?