Configuring Storage
Fedora CoreOS dilengkapi dengan tata letak penyimpanan default yang sederhana: partisi root adalah partisi terakhir dan akan memperluas ukurannya hingga mencakup seluruh kapasitas disk. Selain partisi boot, semua data disimpan di partisi root. Lihat bagian Disk layout section untuk detail lebih lanjut.
Di bawah ini, kami memberikan contoh berbagai cara yang dapat Anda gunakan untuk menyesuaikan ini.
| Fedora CoreOS memerlukan sistem berkas root berukuran minimal 8 GiB. Untuk alasan praktis, citra disk untuk beberapa platform dikirimkan dengan sistem berkas root berukuran lebih kecil, yang secara default akan secara otomatis diperluas untuk mengisi seluruh ruang disk yang tersedia. Jika Anda menambahkan partisi tambahan setelah sistem berkas root, Anda harus memastikan untuk secara eksplisit memperluas partisi root seperti yang ditunjukkan di bawah ini agar ukurannya minimal 8 GiB. Saat ini, jika sistem berkas root berukuran kurang dari 8 GiB, peringatan akan ditampilkan saat login. Mulai Juni 2021, jika sistem berkas root berukuran kurang dari 8 GiB dan diikuti oleh partisi lain, Fedora CoreOS akan menolak untuk boot. Untuk detail lebih lanjut, lihat bug ini. | 
Mengacu pada perangkat blok dari Ignition
Banyak contoh di bawah ini akan merujuk pada perangkat blok, seperti /dev/vda. Nama perangkat blok yang tersedia bergantung pada infrastruktur dasar (bare metal vs cloud) dan seringkali jenis instance spesifik. Misalnya, di AWS, beberapa jenis instance menggunakan drive NVMe (/dev/nvme*), sementara yang lain menggunakan /dev/xvda*.
Jika konfigurasi disk Anda sederhana dan menggunakan disk yang sama tempat sistem operasi di-boot, maka tautan /dev/disk/by-id/coreos-boot-disk dapat digunakan untuk merujuk ke perangkat tersebut dengan mudah. Tautan ini hanya tersedia selama proses provisioning untuk memudahkan merujuk ke disk yang sama tempat sistem operasi di-boot.
Jika Anda perlu mengakses disk lain, Anda dapat mem-boot satu mesin dengan konfigurasi Ignition yang hanya memiliki akses SSH, lalu memeriksa perangkat blok melalui perintah seperti lsblk.
Untuk perangkat keras fisik, disarankan untuk merujuk ke perangkat melalui tautan /dev/disk/by-id/ atau /dev/disk/by-path.
Mengatur mount /var terpisah
Berikut adalah contoh konfigurasi Butane untuk mengatur /var pada partisi terpisah di disk primer yang sama:
variant: fcos
version: 1.6.0
storage:
  disks:
  - # The link to the block device the OS was booted from.
    device: /dev/disk/by-id/coreos-boot-disk
    # We do not want to wipe the partition table since this is the primary
    # device.
    wipe_table: false
    partitions:
    - number: 4
      label: root
      # Allocate at least 8 GiB to the rootfs. See NOTE above about this.
      size_mib: 8192
      resize: true
    - size_mib: 0
      # We assign a descriptive label to the partition. This is important
      # for referring to it in a device-agnostic way in other parts of the
      # configuration.
      label: var
  filesystems:
    - path: /var
      device: /dev/disk/by-partlabel/var
      # We can select the filesystem we'd like.
      format: ext4
      # Ask Butane to generate a mount unit for us so that this filesystem
      # gets mounted in the real root.
      with_mount_unit: trueTentu saja, Anda dapat mem-mount hanya sebagian dari /var ke partisi terpisah. Misalnya, untuk mem-mount /var/lib/containers:
variant: fcos
version: 1.6.0
storage:
  disks:
  - device: /dev/disk/by-id/coreos-boot-disk
    wipe_table: false
    partitions:
    - number: 4
      label: root
      # Allocate at least 8 GiB to the rootfs. See NOTE above about this.
      size_mib: 8192
      resize: true
    - size_mib: 0
      label: containers
  filesystems:
    - path: /var/lib/containers
      device: /dev/disk/by-partlabel/containers
      format: xfs
      with_mount_unit: trueSebagai alternatif, Anda juga dapat menghubungkan penyimpanan dari disk terpisah. Misalnya, di sini kita menghubungkan /var/log dari partisi pada /dev/vdb:
variant: fcos
version: 1.6.0
storage:
  disks:
  - device: /dev/vdb
    wipe_table: false
    partitions:
    - size_mib: 0
      start_mib: 0
      label: log
  filesystems:
    - path: /var/log
      device: /dev/disk/by-partlabel/log
      format: xfs
      with_mount_unit: trueDalam contoh ini, kita menghapus disk dan membuat dua partisi baru.
variant: fcos
version: 1.6.0
storage:
  disks:
    -
      # Mandatory. We use the World-Wide Number ID of the drive to ensure
      # uniqueness.
      device: /dev/disk/by-id/wwn-0x50014e2eb507fcdf
      # This ensures that the partition table is re-created, along with all
      # the partitions.
      wipe_table: true
      partitions:
        # The first partition (slot number 1) is 32 GiB and starts at the
        # beginning of the device. Its type_guid identifies it as a Linux
        # swap partition.
        - label: part1
          number: 1
          size_mib: 32768
          start_mib: 0
          type_guid: 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
        # The second partition (implicit slot number 2) will be placed after
        # partition 1 and will occupy the rest of the available space.
        # Since type_guid is not specified, it will be a Linux native
        # partition.
        - label: part2Mengonfigurasi ulang sistem berkas akar
Anda dapat mengonfigurasi ulang sistem berkas akar itu sendiri. Anda dapat menggunakan jalur /dev/disk/by-label/root untuk merujuk ke partisi akar asli. Pastikan bahwa sistem berkas baru juga memiliki label root.
| Anda harus memiliki setidaknya 4 GiB RAM agar proses reprovisioning root dapat berjalan dengan lancar. | 
Berikut adalah contoh migrasi dari xfs ke ext4, namun tetap menggunakan partisi yang sama pada disk utama:
variant: fcos
version: 1.6.0
storage:
  filesystems:
    - device: /dev/disk/by-partlabel/root
      wipe_filesystem: true
      format: ext4
      label: rootSama seperti pada bagian sebelumnya, Anda juga dapat memindahkan sistem berkas root secara keseluruhan. Di sini, kami memindahkan root ke perangkat RAID0:
variant: fcos
version: 1.6.0
storage:
  raid:
    - name: myroot
      level: raid0
      devices:
        - /dev/disk/by-id/virtio-disk1
        - /dev/disk/by-id/virtio-disk2
  filesystems:
    - device: /dev/md/myroot
      format: xfs
      wipe_filesystem: true
      label: root| Anda tidak memerlukan kunci pathatauwith_mount_unit; FCOS mengetahui bahwa partisi root bersifat khusus dan akan menentukan cara menemukannya serta menghubungkannya. | 
Jika Anda ingin menyalin disk boot ke beberapa drive untuk ketahanan terhadap kegagalan drive, Anda perlu mencerminkan semua partisi default (root, boot, EFI System Partition, dan kode bootloader). Ada sintaks konfigurasi Butane khusus untuk ini:
variant: fcos
version: 1.6.0
boot_device:
  mirror:
    devices:
      - /dev/sda
      - /dev/sdbMenentukan sistem berkas
Contoh ini menunjukkan proses pembuatan sistem berkas dengan mendefinisikan dan memberi label pada partisi, menggabungkannya menjadi array RAID, dan memformat array tersebut sebagai ext4.
variant: fcos
version: 1.6.0
storage:
  disks:
  # This defines two partitions, each on its own disk. The disks are
  # identified by their WWN.
  - device: /dev/disk/by-id/wwn-0x50014ee261e524e4
    wipe_table: true
    partitions:
    -
      # Each partition gets a human-readable label.
      label: "raid.1.1"
      # Each partition is placed at the beginning of the disk and is 64 GiB
      # long.
      number: 1
      size_mib: 65536
      start_mib: 0
  - device: /dev/disk/by-id/wwn-0x50014ee0b8442cd3
    wipe_table: true
    partitions:
    - label: "raid.1.2"
      number: 1
      size_mib: 65536
      start_mib: 0
  # We use the previously defined partitions as devices in a RAID1 md array.
  raid:
    - name: publicdata
      level: raid1
      devices:
      - /dev/disk/by-partlabel/raid.1.1
      - /dev/disk/by-partlabel/raid.1.2
  # The resulting md array is used to create an EXT4 filesystem.
  filesystems:
    - path: /var/publicdata
      device: /dev/md/publicdata
      format: ext4
      label: PUB
      with_mount_unit: truePenyimpanan terenkripsi (LUKS)
Berikut adalah contoh konfigurasi perangkat LUKS di /var/lib/data.
variant: fcos
version: 1.6.0
storage:
  luks:
    - name: data
      device: /dev/vdb
  filesystems:
    - path: /var/lib/data
      device: /dev/mapper/data
      format: xfs
      label: DATA
      with_mount_unit: trueSistem berkas akar juga dapat dipindahkan ke LUKS. Dalam hal ini, perangkat LUKS harus diikat oleh Clevis. Terdapat dua jenis pengikatan utama yang tersedia: TPM2 dan Tang (atau kombinasi keduanya menggunakan Shamir Secret Sharing).
| TPM2 pinning hanya mengikat enkripsi ke mesin fisik yang digunakan. Pastikan untuk memahami model ancaman TPM2 sebelum memilih antara TPM2 dan Tang pinning. Untuk informasi lebih lanjut, lihat bagian ini dalam dokumentasi Clevis TPM2 pin. | 
| Anda harus memiliki setidaknya 4 GiB RAM agar proses reprovisioning root dapat berjalan dengan lancar. | 
Terdapat sintaks konfigurasi Butane yang disederhanakan untuk mengonfigurasi enkripsi sistem berkas akar dan penguncian. Berikut adalah contoh penggunaan sintaks ini untuk membuat sistem berkas akar terenkripsi yang dikunci oleh TPM2:
variant: fcos
version: 1.6.0
boot_device:
  luks:
    tpm2: trueIni setara dengan konfigurasi yang diperluas berikut:
variant: fcos
version: 1.6.0
storage:
  luks:
    - name: root
      label: luks-root
      device: /dev/disk/by-partlabel/root
      clevis:
        tpm2: true
      wipe_volume: true
  filesystems:
    - device: /dev/mapper/root
      format: xfs
      wipe_filesystem: true
      label: rootKonfigurasi yang diperluas tidak mencakup kunci path atau with_mount_unit; FCOS mengetahui bahwa partisi root bersifat khusus dan akan menentukan cara menemukannya serta meng-mount-nya.
Contoh berikut ini mengikat enkripsi sistem berkas root ke PCR 7, yang sesuai dengan Komponen Boot UEFI yang digunakan untuk melacak sertifikat Secure Boot dari memori. Oleh karena itu, pembaruan pada firmware UEFI/sertifikat tidak seharusnya memengaruhi nilai yang disimpan di PCR 7.
| Pengikatan untuk PCR 8 (Komponen Boot UEFI yang digunakan untuk melacak perintah dan baris perintah kernel) tidak didukung karena baris perintah kernel berubah dengan setiap pembaruan sistem operasi. | 
variant: fcos
version: 1.6.0
storage:
  luks:
    - name: root
      label: luks-root
      device: /dev/disk/by-partlabel/root
      clevis:
        custom:
          needs_network: false
          pin: tpm2
          config: '{"pcr_bank":"sha1","pcr_ids":"7"}'
      wipe_volume: true
  filesystems:
    - device: /dev/mapper/root
      format: xfs
      wipe_filesystem: true
      label: rootDokumentasi tambahan untuk bidang config dapat ditemukan di halaman manual clevis: man clevis-encrypt-tpm2
Perintah clevis berikut dapat digunakan untuk memastikan bahwa enkripsi sistem berkas root terikat pada PCR 7.
$ sudo clevis luks list -d /dev/disk/by-partlabel/root
1: tpm2 '{"hash":"sha256","key":"ecc","pcr_bank":"sha1","pcr_ids":"7"}'Berikut adalah contoh sintaks konfigurasi yang disederhanakan dengan Tang:
variant: fcos
version: 1.6.0
boot_device:
  luks:
    tang:
      - url: http://192.168.122.1:80
        thumbprint: bV8aajlyN6sYqQ41lGqD4zlhe0ESistem akan menghubungi server Tang saat booting.
| Untuk informasi lebih lanjut tentang cara mengonfigurasi server Tang, lihat dokumentasi resmi. | 
Anda dapat mengonfigurasi baik Tang maupun TPM2 pinning (termasuk beberapa server Tang untuk redundansi). Secara default, hanya perangkat TPM2 atau satu server Tang yang diperlukan untuk membuka kunci sistem berkas root. Hal ini dapat diubah menggunakan kunci threshold:
variant: fcos
version: 1.6.0
boot_device:
  luks:
    tang:
      - url: http://192.168.122.1:80
        thumbprint: bV8aajlyN6sYqQ41lGqD4zlhe0E
    tpm2: true
    # this will allow rootfs unlocking only if both TPM2 and Tang pins are
    # accessible and valid
    threshold: 2Menentukan ukuran partisi root
Jika Anda menggunakan Ignition untuk mengonfigurasi ulang atau memindahkan partisi root, partisi tersebut tidak akan secara otomatis diperluas pada booting pertama (lihat diskusi terkait di masalah ini). Jika Anda memindahkan partisi root ke disk baru (atau beberapa disk), Anda harus mengatur ukuran partisi yang diinginkan menggunakan bidang size_mib. Jika Anda mengonfigurasi ulang sistem berkas root di tempat yang sama, seperti dalam contoh LUKS di atas, Anda dapat mengubah ukuran partisi yang ada menggunakan bidang resize:
variant: fcos
version: 1.6.0
storage:
  disks:
    - device: /dev/disk/by-id/coreos-boot-disk
      partitions:
        - label: root
          number: 4
          # 0 means to use all available space
          size_mib: 0
          resize: true
  luks:
    - name: root
      device: /dev/disk/by-partlabel/root
      clevis:
        tpm2: true
      wipe_volume: true
  filesystems:
    - device: /dev/mapper/root
      format: xfs
      wipe_filesystem: true
      label: rootMenambahkan swap
Contoh ini membuat partisi swap yang mencakup seluruh perangkat sdb, membuat area swap di dalamnya, dan membuat unit swap systemd sehingga area swap diaktifkan saat boot.
variant: fcos
version: 1.6.0
storage:
  disks:
    - device: /dev/sdb
      wipe_table: true
      partitions:
        - number: 1
          label: swap
  filesystems:
    - device: /dev/disk/by-partlabel/swap
      format: swap
      wipe_filesystem: true
      with_mount_unit: trueMenambahkan penyimpanan jaringan
Sistem Fedora CoreOS dapat dikonfigurasi untuk menghubungkan sistem berkas jaringan seperti NFS dan CIFS. Hal ini dapat dilakukan dengan menggunakan Ignition untuk membuat unit systemd. Sistem berkas dapat dihubungkan saat boot dengan membuat unit mount standar. Sebagai alternatif, sistem berkas dapat dihubungkan saat pengguna mengakses titik hubung dengan membuat unit automount tambahan. Berikut adalah contoh masing-masing untuk sistem berkas NFS.
Konfigurasi mount NFS
| Membuat unit systemd untuk menghubungkan sistem berkas NFS saat boot.Berkas .mountharus diberi nama berdasarkan jalur (misalnya/var/mnt/data=var-mnt-data.mount) | 
variant: fcos
version: 1.3.0
systemd:
  units:
    - name: var-mnt-data.mount
      enabled: true
      contents: |
        [Unit]
        Description=Mount data directory
        [Mount]
        What=example.org:/data
        Where=/var/mnt/data
        Type=nfs4
        [Install]
        WantedBy=multi-user.targetvariant: fcos
version: 1.3.0
systemd:
  units:
    - name: var-mnt-data.mount
      contents: |
        [Unit]
        Description=Mount data directory
        [Mount]
        What=example.org:/data
        Where=/var/mnt/data
        Type=nfs4
        [Install]
        WantedBy=multi-user.target
    - name: var-mnt-data.automount
      enabled: true
      contents: |
        [Unit]
        Description=Automount data directory
        [Automount]
        TimeoutIdleSec=20min
        Where=/var/mnt/data
        [Install]
        WantedBy=multi-user.targetContoh lanjutan
Contoh ini mengonfigurasi disk boot yang di-mirror dengan sistem berkas root yang dienkripsi menggunakan TPM2, mengganti ukuran partisi root yang dihasilkan secara otomatis, dan menambahkan partisi /var yang dienkripsi dan di-mirror yang menggunakan sisa ruang disk.
variant: fcos
version: 1.6.0
boot_device:
  luks:
    tpm2: true
  mirror:
    devices:
      - /dev/sda
      - /dev/sdb
storage:
  disks:
    - device: /dev/sda
      partitions:
        # Override size of root partition on first disk, via the label
        # generated for boot_device.mirror
        - label: root-1
          size_mib: 10240
        # Add a new partition filling the remainder of the disk
        - label: var-1
    - device: /dev/sdb
      partitions:
        # Similarly for second disk
        - label: root-2
          size_mib: 10240
        - label: var-2
  raid:
    - name: md-var
      level: raid1
      devices:
        - /dev/disk/by-partlabel/var-1
        - /dev/disk/by-partlabel/var-2
  luks:
    - name: var
      device: /dev/md/md-var
      # No key material is specified, so a random key will be generated
      # and stored in the root filesystem
  filesystems:
    - device: /dev/mapper/var
      path: /var
      label: var
      format: xfs
      wipe_filesystem: true
      with_mount_unit: trueTata Letak Disk
Semua sistem Fedora CoreOS dimulai dengan citra disk yang sama, yang sedikit berbeda antar arsitektur tergantung pada kebutuhan untuk proses booting. Pada booting pertama, sistem berkas root diperluas untuk mengisi sisa ruang disk. Citra disk dapat disesuaikan menggunakan konfigurasi Butane untuk membagi ulang disk dan membuat/mereformat sistem file. Instalasi bare metal tidak berbeda; installer hanya menyalin citra mentah ke disk target dan menyisipkan konfigurasi yang ditentukan ke /boot untuk digunakan pada booting pertama.
| Lihat Mengonfigurasi ulang sistem berkas akar untuk contoh perubahan yang didukung pada partisi akar. | 
Tabel Partisi
Penggunaan nomor partisi untuk merujuk pada partisi tertentu tidak disarankan, dan sebaiknya gunakan label atau UUID sebagai gantinya. Fedora CoreOS meng Reservasi label boot, boot-<number>, root, root-<number>, BIOS-BOOT, bios-<number>, EFI-SYSTEM, dan esp-<number>, serta nama perangkat RAID md-boot dan md-root. Pembuatan partisi, sistem berkas, atau perangkat RAID dengan label-label tersebut tidak didukung.
Tabel Partisi x86_64
Citra disk x86_64 diformat GPT dengan MBR pelindung. Citra disk ini mendukung booting melalui BIOS dan UEFI (termasuk Secure Boot).
Tata letak tabel partisi telah berubah seiring waktu. Tata letak saat ini adalah:
| Nomor | Label | Deskripsi | Jenis Partisi | 
| 1 | BIOS-BOOT | Berisi citra BIOS GRUB | raw data | 
| 2 | EFI-SYSTEM | Berisi citra EFI GRUB dan Secure Boot shim | FAT32 | 
| 3 | boot | Berisi konfigurasi GRUB, citra kernel/initramfs | ext4 | 
| 4 | root | Berisi sistem berkas root | xfs | 
Partisi EFI-SYSTEM dapat dihapus atau diformat ulang saat booting BIOS. Demikian pula, partisi BIOS-BOOT dapat dihapus atau diformat ulang saat booting EFI.
Sistem Berkas yang di-mount
Fedora CoreOS menggunakan OSTree, yang merupakan sistem untuk mengelola beberapa pohon sistem operasi yang dapat di-boot dan berbagi penyimpanan. Setiap versi sistem operasi merupakan bagian dari sistem berkas /. Semua deployment berbagi /var yang sama, yang dapat berada di sistem berkas yang sama atau di-mount secara terpisah.
Ini menunjukkan titik mount default untuk sistem Fedora CoreOS yang diinstal pada disk /dev/vda:
$ findmnt --real # Some details are elided
TARGET        SOURCE                                                   FSTYPE  OPTIONS
/             /dev/vda4[/ostree/deploy/fedora-coreos/deploy/$hash]     xfs     rw
|-/sysroot    /dev/vda4                                                xfs     ro
|-/etc        /dev/vda4[/ostree/deploy/fedora-coreos/deploy/$hash/etc] xfs     rw
|-/usr        /dev/vda4[/ostree/deploy/fedora-coreos/deploy/$hash/usr] xfs     ro
|-/var        /dev/vda4[/ostree/deploy/fedora-coreos/deploy/var]       xfs     rw
`-/boot       /dev/vda3                                                ext4    roPartisi Sistem EFI sebelumnya dipasang di /boot/efi, tetapi hal ini tidak lagi berlaku. Pada sistem yang dikonfigurasi dengan pencerminan perangkat boot, terdapat partisi EFI yang independen pada setiap disk yang membentuk sistem.
Tidak dapat diubah /, hanya baca /usr
Karena OSTree digunakan untuk mengelola semua file yang terkait dengan sistem operasi, titik mount / dan /usr tidak dapat ditulis. Perubahan apa pun pada sistem operasi harus diterapkan melalui rpm-ostree.
Demikian pula, titik mount /boot tidak dapat ditulis, dan Partisi Sistem EFI tidak di-mount secara default. Sistem berkas ini dikelola oleh rpm-ostree dan bootupd, dan tidak boleh diubah secara langsung oleh administrator.
Penambahan direktori tingkat atas (misalnya /foo) saat ini tidak didukung dan dilarang oleh atribut immutable.
Sebenarnya / (seperti akar sistem berkas di partisi root) dipasang secara read-only di /sysroot dan tidak boleh diakses atau dimodifikasi secara langsung.
Konfigurasi di /etc dan status di /var
Lokasi yang didukung untuk penulisan hanya /etc dan /var. /etc hanya boleh berisi berkas konfigurasi dan tidak dimaksudkan untuk menyimpan data. Semua data harus disimpan di bawah /var dan tidak akan terpengaruh oleh pembaruan sistem. Lokasi tradisional yang mungkin menyimpan data (misalnya /home atau /srv) adalah tautan simbolis ke direktori di /var (misalnya /var/home atau /var/srv).
Pemilihan versi dan proses booting
Entri menu GRUB dibuat untuk setiap versi Fedora CoreOS yang saat ini tersedia di sistem. Entri menu ini merujuk pada deployment ostree yang terdiri dari kernel Linux, initramfs, dan hash yang mengarah ke commit ostree (diteruskan melalui argumen kernel ostree=). Selama proses booting, ostree akan membaca argumen kernel ini untuk menentukan deployment mana yang akan digunakan sebagai sistem berkas root. Setiap pembaruan atau perubahan pada sistem (pemasangan paket, penambahan argumen kernel) akan menciptakan deployment baru. Hal ini memungkinkan untuk kembali ke deployment sebelumnya jika pembaruan menyebabkan masalah.
Want to help? Learn how to contribute to Fedora Docs ›