ການຕັ້ງຄ່າບ່ອນເກັບຂໍ້ມູນ
Fedora CoreOS ມາພ້ອມກັບຮູບແບບຜັງບ່ອນເກັບຂໍ້ມູນເລີ່ມຕົ້ນທີ່ງ່າຍດາຍ: ພາທິຊັນຮາກ (root partition) ແມ່ນພາທິຊັນສຸດທ້າຍ ແລະ ຈະຂະຫຍາຍຕົວເພື່ອໃຊ້ພື້ນທີ່ທັງໝົດຂອງດິສກ໌. ນອກຈາກ ພາທິຊັນບູດ (boot partition) ແລ້ວ, ຂໍ້ມູນທັງໝົດແມ່ນຖືກເກັບໄວ້ໃນພາທິຊັນຮາກ. ເບິ່ງ ພາກສ່ວນຮູບແບບຜັງດິສກ໌ ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ.
ດ້ານລຸ່ມນີ້, ພວກເຮົາໄດ້ສະໜອງຕົວຢ່າງກ່ຽວກັບວິທີຕ່າງໆ ທີ່ເຈົ້າສາມາດປັບແຕ່ງສິ່ງນີ້ໄດ້.
|
Fedora CoreOS ຕ້ອງການລະບົບໄຟລ໌ຮາກ (root filesystem) ຢ່າງໜ້ອຍ 8 GiB. ດ້ວຍເຫດຜົນ ທາງດ້ານເຕັກນິກ, ອິມເມຈດິສກ໌ (disk images) ສຳລັບບາງແພລັດຟອມມາພ້ອມກັບ ລະບົບໄຟລ໌ຮາກທີ່ມີຂະໜາດນ້ອຍກວ່າ, ເຊິ່ງໂດຍເລີ່ມຕົ້ນແລ້ວຈະຂະຫຍາຍຕົວໂດຍອັດຕະໂນມັດເພື່ອ ໃຊ້ພື້ນທີ່ດິສກ໌ທັງໝົດທີ່ມີຢູ່. ຖ້າເຈົ້າເພີ່ມພາທິຊັນອື່ນຫຼັງຈາກລະບົບໄຟລ໌ຮາກ, ເຈົ້າ ຕ້ອງແນ່ໃຈວ່າໄດ້ປັບຂະໜາດພາທິຊັນຮາກໃຫ້ຈະແຈ້ງຕາມທີ່ສະແດງໄວ້ດ້ານລຸ່ມ ເພື່ອໃຫ້ ມັນມີຂະໜາດຢ່າງໜ້ອຍ 8 GiB. ໃນປັດຈຸບັນ, ຖ້າລະບົບໄຟລ໌ຮາກມີຂະໜາດນ້ອຍກວ່າ 8 GiB, ຈະມີການແຈ້ງເຕືອນເມື່ອເຂົ້າສູ່ລະບົບ. ເລີ່ມແຕ່ເດືອນມິຖຸນາ 2021 ເປັນຕົ້ນໄປ, ຖ້າລະບົບໄຟລ໌ຮາກມີຂະໜາດນ້ອຍກວ່າ 8 GiB ແລະ ຕາມດ້ວຍພາທິຊັນອື່ນ, Fedora CoreOS ຈະປະຕິເສດການບູດ. ສຳລັບລາຍລະອຽດເພີ່ມເຕີມ, ເບິ່ງໄດ້ທີ່ ບັກນີ້. |
ການອ້າງອີງອຸປະກອນບລັອກ (block devices) ຈາກ Ignition
ຕົວຢ່າງຫຼາຍຢ່າງດ້ານລຸ່ມນີ້ຈະອ້າງອີງເຖິງອຸປະກອນບລັອກ ເຊັ່ນ /dev/vda. ຊື່ຂອງ ອຸປະກອນບລັອກທີ່ມີໃຫ້ໃຊ້ນັ້ນຂຶ້ນຢູ່ກັບໂຄງສ້າງພື້ນຖານ (bare metal ຫຼື cloud), ແລະ ສ່ວນຫຼາຍມັກຈະຂຶ້ນກັບປະເພດອິນສະແຕນຊ໌ (instance type). ຕົວຢ່າງໃນ AWS, ບາງ ປະເພດອິນສະແຕນຊ໌ມີໄດຣຟ໌ NVMe (/dev/nvme*), ສ່ວນບາງອັນໃຊ້ /dev/xvda*.
ຖ້າການຕັ້ງຄ່າດິສກ໌ຂອງເຈົ້າບໍ່ຊັບຊ້ອນ ແລະ ໃຊ້ດິສກ໌ດຽວກັບທີ່ລະບົບປະຕິບັດການ (OS) ບູດຂຶ້ນມາ, ເຈົ້າສາມາດໃຊ້ລິ້ງ /dev/disk/by-id/coreos-boot-disk ເພື່ອອ້າງອີງເຖິງ ອຸປະກອນນັ້ນໄດ້ຢ່າງສະດວກ. ລິ້ງນີ້ຈະມີໃຫ້ໃຊ້ສະເພາະໃນລະຫວ່າງການຈັດສັນລະບົບ (provisioning) ເພື່ອເຮັດໃຫ້ງ່າຍຕໍ່ການອ້າງອີງເຖິງດິສກ໌ດຽວກັບທີ່ OS ບູດຂຶ້ນມາ.
ຖ້າເຈົ້າຕ້ອງການເຂົ້າເຖິງດິສກ໌ອື່ນໆ, ເຈົ້າສາມາດບູດເຄື່ອງດຽວດ້ວຍການຕັ້ງຄ່າ Ignition ທີ່ມີພຽງການເຂົ້າເຖິງ SSH, ແລ້ວກວດສອບອຸປະກອນບລັອກຜ່ານຄຳສັ່ງ ເຊັ່ນ lsblk.
ສຳລັບຮາດແວຈິງ (physical hardware), ແນະນຳໃຫ້ອ້າງອີງອຸປະກອນຜ່ານລິ້ງ /dev/disk/by-id/ ຫຼື /dev/disk/by-path.
ການຕັ້ງຄ່າການເມົາທ໌ /var ແຍກຕ່າງຫາກ
ນີ້ແມ່ນຕົວຢ່າງການຕັ້ງຄ່າ Butane ເພື່ອຕິດຕັ້ງ /var ໄວ້ໃນພາທິຊັນແຍກຕ່າງຫາກ ໃນດິສກ໌ຫຼັກອັນດຽວກັນ:
variant: fcos
version: 1.7.0
storage:
disks:
- # ລິ້ງໄປຫາອຸປະກອນບລັອກທີ່ OS ຖືກບູດຂຶ້ນມາ.
device: /dev/disk/by-id/coreos-boot-disk
# ພວກເຮົາບໍ່ຕ້ອງການລຶບຕາຕະລາງພາທິຊັນ ເນື່ອງຈາກນີ້ແມ່ນອຸປະກອນຫຼັກ.
# device.
wipe_table: false
partitions:
- number: 4
label: root
# ຈັດສັນຢ່າງໜ້ອຍ 8 GiB ໃຫ້ກັບ rootfs. ເບິ່ງໝາຍເຫດ (NOTE) ດ້ານເທິງກ່ຽວກັບເລື່ອງນີ້.
size_mib: 8192
resize: true
- size_mib: 0
# ພວກເຮົາກຳນົດເລເບວ (label) ເພື່ອອະທິບາຍພາທິຊັນ. ນີ້ແມ່ນສິ່ງສຳຄັນ
# ສຳລັບການອ້າງອີງເຖິງມັນໃນແບບທີ່ບໍ່ຂຶ້ນກັບຊື່ອຸປະກອນໃນພາກສ່ວນອື່ນໆ ຂອງການຕັ້ງຄ່າ.
# configuration.
label: var
filesystems:
- path: /var
device: /dev/disk/by-partlabel/var
# ພວກເຮົາສາມາດເລືອກລະບົບໄຟລ໌ທີ່ເຮົາຕ້ອງການໄດ້.
format: ext4
# ໃຫ້ Butane ສ້າງ mount unit ໃຫ້ພວກເຮົາ ເພື່ອໃຫ້ລະບົບໄຟລ໌ນີ້
# ຖືກເມົາທ໌ເຂົ້າໃນຮາກ (root) ຕົວຈິງ.
with_mount_unit: true
ແນ່ນອນວ່າ ເຈົ້າສາມາດເມົາທ໌ພຽງແຕ່ບາງສ່ວນຂອງ /var ເຂົ້າໃນພາທິຊັນແຍກຕ່າງຫາກໄດ້. ຕົວຢ່າງ, ເພື່ອເມົາທ໌ /var/lib/containers:
variant: fcos
version: 1.7.0
storage:
disks:
- device: /dev/disk/by-id/coreos-boot-disk
wipe_table: false
partitions:
- number: 4
label: root
# ຈັດສັນຢ່າງໜ້ອຍ 8 GiB ໃຫ້ກັບ rootfs. ເບິ່ງໝາຍເຫດ (NOTE) ດ້ານເທິງ.
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: true
ນອກຈາກນັ້ນ, ເຈົ້າຍັງສາມາດເມົາທ໌ບ່ອນເກັບຂໍ້ມູນຈາກດິສກ໌ແຍກຕ່າງຫາກໄດ້. ຕົວຢ່າງ, ໃນທີ່ນີ້ພວກເຮົາເມົາທ໌ /var/log ຈາກພາທິຊັນໃນ /dev/vdb:
variant: fcos
version: 1.7.0
storage:
disks:
- device: /dev/vdb
wipe_table: false
partitions:
- size_mib: 0
start_mib: 0
number: 1
label: log
filesystems:
- path: /var/log
device: /dev/disk/by-partlabel/log
format: xfs
with_mount_unit: true
ໃນຕົວຢ່າງນີ້, ພວກເຮົາລຶບຂໍ້ມູນໃນດິສກ໌ ແລະ ສ້າງພາທິຊັນໃໝ່ສອງພາທິຊັນ.
variant: fcos
version: 1.7.0
storage:
disks:
-
# ບັງຄັບ. ພວກເຮົາໃຊ້ World-Wide Number ID ຂອງໄດຣຟ໌ເພື່ອຮັບປະກັນ
# ຄວາມບໍ່ຊ້ຳກັນ.
device: /dev/disk/by-id/wwn-0x50014e2eb507fcdf
# ນີ້ຮັບປະກັນວ່າຕາຕະລາງພາທິຊັນຈະຖືກສ້າງຂຶ້ນໃໝ່ ພ້ອມກັບທຸກໆ
# ພາທິຊັນ.
wipe_table: true
partitions:
# ພາທິຊັນທຳອິດ (ໝາຍເລກຊ່ອງ 1) ມີຂະໜາດ 32 GiB ແລະ ເລີ່ມຕົ້ນທີ່
# ຈຸດເລີ່ມຕົ້ນຂອງອຸປະກອນ. type_guid ຂອງມັນລະບຸວ່າເປັນ Linux
# swap partition.
- label: part1
number: 1
size_mib: 32768
start_mib: 0
type_guid: 0657fd6d-a4ab-43c4-84e5-0933c84b4f4f
# ພາທິຊັນທີສອງ (ໝາຍເລກຊ່ອງ 2 ໂດຍປະລິຍາຍ) ຈະຖືກວາງໄວ້ຫຼັງຈາກ
# ພາທິຊັນ 1 ແລະ ຈະຄອບຄອງພື້ນທີ່ທີ່ເຫຼືອທັງໝົດ.
# ເນື່ອງຈາກບໍ່ໄດ້ລະບຸ type_guid, ມັນຈະເປັນພາທິຊັນ Linux native.
# partition.
- label: part2
ການຕັ້ງຄ່າລະບົບໄຟລ໌ຮາກໃໝ່
ມັນເປັນໄປໄດ້ທີ່ຈະຕັ້ງຄ່າລະບົບໄຟລ໌ຮາກຄືນໃໝ່. ເຈົ້າສາມາດໃຊ້ເສັ້ນທາງ /dev/disk/by-label/root ເພື່ອອ້າງອີງເຖິງພາທິຊັນຮາກເດີມ. ເຈົ້າ ຕ້ອງຮັບປະກັນວ່າລະບົບໄຟລ໌ໃໝ່ມີເລເບວເປັນ root ຄືກັນ.
| ເຈົ້າຕ້ອງມີ RAM ຢ່າງໜ້ອຍ 4 GiB ເພື່ອໃຫ້ການຈັດສັນຮາກໃໝ່ (root reprovisioning) ເຮັດວຽກໄດ້. |
ນີ້ແມ່ນຕົວຢ່າງຂອງການປ່ຽນຈາກ xfs ເປັນ ext4, ແຕ່ໃຊ້ພາທິຊັນເດີມ ໃນດິສກ໌ຫຼັກ:
variant: fcos
version: 1.7.0
storage:
filesystems:
- device: /dev/disk/by-partlabel/root
wipe_filesystem: true
format: ext4
label: root
ເຊັ່ນດຽວກັນກັບພາກສ່ວນກ່ອນໜ້ານີ້, ເຈົ້າຍັງສາມາດຍ້າຍລະບົບໄຟລ໌ຮາກທັງໝົດໄດ້. ໃນທີ່ນີ້, ພວກເຮົາກຳລັງຍ້າຍຮາກ (root) ໄປຍັງອຸປະກອນ RAID0:
variant: fcos
version: 1.7.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
ເຈົ້າບໍ່ຈຳເປັນຕ້ອງໃຊ້ຄີ path ຫຼື with_mount_unit; FCOS ຮູ້ວ່າ ພາທິຊັນຮາກນັ້ນມີຄວາມພິເສດ ແລະ ຈະຫາວິທີຊອກຫາ ແລະ ເມົາທ໌ມັນເອງ.
|
ຖ້າເຈົ້າຕ້ອງການເຮັດສຳເນົາດິສກ໌ບູດໄປຫາຫຼາຍໄດຣຟ໌ ເພື່ອຄວາມທົນທານຕໍ່ການເຮັດວຽກຜິດພາດຂອງໄດຣຟ໌, ເຈົ້າຈຳເປັນຕ້ອງເຮັດມິເລີ (mirror) ພາທິຊັນເລີ່ມຕົ້ນທັງໝົດ (root, boot, EFI System Partition, ແລະ bootloader code). ມີໄວຢາກອນການຕັ້ງຄ່າ Butane ພິເສດສຳລັບເລື່ອງນີ້:
variant: fcos
version: 1.7.0
boot_device:
# Change to match target architecture (aarch64, ppc64le, etc.)
layout: x86_64
mirror:
devices:
- /dev/sda
- /dev/sdb
ການກຳນົດລະບົບໄຟລ໌
ຕົວຢ່າງນີ້ສະແດງໃຫ້ເຫັນເຖິງຂັ້ນຕອນການສ້າງລະບົບໄຟລ໌ໂດຍການກຳນົດ ແລະ ຕັ້ງຊື່ເລເບວໃຫ້ກັບພາທິຊັນ, ລວມພວກມັນເຂົ້າເປັນ RAID array, ແລະ ຟໍແມັດ array ນັ້ນໃຫ້ເປັນ ext4.
variant: fcos
version: 1.7.0
storage:
disks:
# ນີ້ກຳນົດສອງພາທິຊັນ, ແຕ່ລະອັນຢູ່ໃນດິສກ໌ຂອງມັນເອງ. ດິສກ໌ເຫຼົ່ານີ້ຖືກ
# ລະບຸໂດຍ WWN ຂອງພວກມັນ.
- device: /dev/disk/by-id/wwn-0x50014ee261e524e4
wipe_table: true
partitions:
-
# ແຕ່ລະພາທິຊັນຈະໄດ້ຮັບເລເບວທີ່ມະນຸດອ່ານເຂົ້າໃຈໄດ້.
label: "raid.1.1"
# ແຕ່ລະພາທິຊັນຈະຖືກວາງໄວ້ທີ່ຈຸດເລີ່ມຕົ້ນຂອງດິສກ໌ ແລະ ມີຄວາມຍາວ
# 64 GiB.
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
# ພວກເຮົາໃຊ້ພາທິຊັນທີ່ກຳນົດໄວ້ກ່ອນໜ້ານີ້ເປັນອຸປະກອນໃນ RAID1 md array.
raid:
- name: publicdata
level: raid1
devices:
- /dev/disk/by-partlabel/raid.1.1
- /dev/disk/by-partlabel/raid.1.2
# md array ທີ່ໄດ້ມາຈະຖືກໃຊ້ເພື່ອສ້າງລະບົບໄຟລ໌ EXT4.
filesystems:
- path: /var/publicdata
device: /dev/md/publicdata
format: ext4
label: PUB
with_mount_unit: true
ບ່ອນເກັບຂໍ້ມູນທີ່ມີການເຂົ້າລະຫັດ (LUKS)
ນີ້ແມ່ນຕົວຢ່າງການຕັ້ງຄ່າອຸປະກອນ LUKS ທີ່ /var/lib/data.
variant: fcos
version: 1.7.0
storage:
luks:
- name: data
device: /dev/vdb
filesystems:
- path: /var/lib/data
device: /dev/mapper/data
format: xfs
label: DATA
with_mount_unit: true
ລະບົບໄຟລ໌ຮາກກໍສາມາດຍ້າຍໄປ LUKS ໄດ້ຄືກັນ. ໃນກໍລະນີນັ້ນ, ອຸປະກອນ LUKS ຕ້ອງຖືກຜູກມັດ ໂດຍ Clevis. ມີປະເພດການຜູກມັດ (pin) ຫຼັກຢູ່ສອງແບບຄື: TPM2 ແລະ Tang (ຫຼື ການປະສົມປະສານໂດຍໃຊ້ Shamir Secret Sharing).
| ການຜູກມັດແບບ TPM2 ຈະຜູກມັດການເຂົ້າລະຫັດກັບເຄື່ອງຮາກແວຈິງທີ່ກຳລັງໃຊ້ຢູ່. ໃຫ້ແນ່ໃຈວ່າ ເຈົ້າເຂົ້າໃຈຮູບແບບໄພຄຸກຄາມ (threat model) ຂອງມັນກ່ອນທີ່ຈະເລືອກລະຫວ່າງ TPM2 ແລະ Tang. ສຳລັບຂໍ້ມູນເພີ່ມເຕີມ, ເບິ່ງ ພາກສ່ວນນີ້ ຂອງເອກະສານການຜູກມັດ Clevis TPM2. |
| ເຈົ້າຕ້ອງມີ RAM ຢ່າງໜ້ອຍ 4 GiB ເພື່ອໃຫ້ການຈັດສັນຮາກໃໝ່ (root reprovisioning) ເຮັດວຽກໄດ້. |
ມີໄວຢາກອນການຕັ້ງຄ່າ Butane ທີ່ເຮັດໃຫ້ງ່າຍຂຶ້ນສຳລັບການຕັ້ງຄ່າການເຂົ້າລະຫັດລະບົບໄຟລ໌ຮາກ ແລະ ການຜູກມັດ. ນີ້ແມ່ນຕົວຢ່າງການໃຊ້ມັນເພື່ອສ້າງລະບົບໄຟລ໌ຮາກທີ່ມີການເຂົ້າລະຫັດ ແລະ ຜູກມັດດ້ວຍ TPM2:
variant: fcos
version: 1.7.0
boot_device:
luks:
tpm2: true
ສິ່ງນີ້ທຽບເທົ່າກັບການຕັ້ງຄ່າແບບເຕັມດັ່ງຕໍ່ໄປນີ້:
variant: fcos
version: 1.7.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: root
ການຕັ້ງຄ່າແບບເຕັມນີ້ບໍ່ລວມຄີ path ຫຼື with_mount_unit; FCOS ຮູ້ວ່າພາທິຊັນຮາກນັ້ນພິເສດ ແລະ ຈະຊອກຫາວິທີການຄົ້ນຫາ ແລະ ເມົາທ໌ມັນເອງ.
ຕົວຢ່າງຕໍ່ໄປນີ້ຈະຜູກມັດການເຂົ້າລະຫັດລະບົບໄຟລ໌ຮາກກັບ PCR 7 ເຊິ່ງກົງກັບ UEFI Boot Component ທີ່ໃຊ້ເພື່ອຕິດຕາມໃບຢັ້ງຢືນ Secure Boot ຈາກໜ່ວຍຄວາມຈຳ. ດັ່ງນັ້ນ, ການອັບເດດ UEFI firmware/ໃບຢັ້ງຢືນ ຈຶ່ງບໍ່ຄວນສົ່ງຜົນກະທົບຕໍ່ຄ່າທີ່ເກັບໄວ້ໃນ PCR 7.
| ການຜູກມັດສຳລັບ PCR 8 (UEFI Boot Component ທີ່ໃຊ້ຕິດຕາມຄຳສັ່ງ ແລະ kernel command line) ແມ່ນບໍ່ຮອງຮັບ ເນື່ອງຈາກ kernel command line ຈະປ່ຽນແປງທຸກຄັ້ງທີ່ມີການອັບເດດ OS. |
variant: fcos
version: 1.7.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: root
ສາມາດເບິ່ງເອກະສານເພີ່ມເຕີມສຳລັບຟິວ (fields) config ໄດ້ໃນໜ້າ clevis man: man clevis-encrypt-tpm2
ສາມາດໃຊ້ຄຳສັ່ງ clevis ຕໍ່ໄປນີ້ເພື່ອຢືນຢັນວ່າການເຂົ້າລະຫັດລະບົບໄຟລ໌ຮາກ ຖືກຜູກມັດກັບ PCR 7 ຫຼື ບໍ່.
$ sudo clevis luks list -d /dev/disk/by-partlabel/root
1: tpm2 '{"hash":"sha256","key":"ecc","pcr_bank":"sha1","pcr_ids":"7"}'
ນີ້ແມ່ນຕົວຢ່າງຂອງໄວຢາກອນການຕັ້ງຄ່າແບບງ່າຍດ້ວຍ Tang:
variant: fcos
version: 1.7.0
boot_device:
luks:
tang:
- url: http://192.168.122.1:80
thumbprint: bV8aajlyN6sYqQ41lGqD4zlhe0E
ລະບົບຈະຕິດຕໍ່ກັບເຊີບເວີ Tang ໃນເວລາມີການບູດ.
| ສຳລັບຂໍ້ມູນເພີ່ມເຕີມກ່ຽວກັບການຕິດຕັ້ງເຊີບເວີ Tang, ເບິ່ງໄດ້ທີ່ ເອກະສານຕົ້ນທາງ. |
ເຈົ້າສາມາດຕັ້ງຄ່າການຜູກມັດທັງ Tang ແລະ TPM2 ໄດ້ (ລວມທັງການໃຊ້ເຊີບເວີ Tang ຫຼາຍເຄື່ອງ ເພື່ອເປັນການສຳຮອງ). ໂດຍເລີ່ມຕົ້ນແລ້ວ, ຕ້ອງການພຽງແຕ່ອຸປະກອນ TPM2 ຫຼື ເຊີບເວີ Tang ພຽງເຄື່ອງດຽວ ເພື່ອປົດລັອກລະບົບໄຟລ໌ຮາກ. ສິ່ງນີ້ສາມາດປ່ຽນແປງໄດ້ໂດຍໃຊ້ຄີ threshold:
variant: fcos
version: 1.7.0
boot_device:
luks:
tang:
- url: http://192.168.122.1:80
thumbprint: bV8aajlyN6sYqQ41lGqD4zlhe0E
tpm2: true
# ສິ່ງນີ້ຈະອະນຸຍາດໃຫ້ປົດລັອກ rootfs ໄດ້ກໍຕໍ່ເມື່ອທັງ TPM2 ແລະ Tang ສາມາດ
# ເຂົ້າເຖິງໄດ້ ແລະ ຖືກຕ້ອງເທົ່ານັ້ນ
threshold: 2
ການກຳນົດຂະໜາດພາທິຊັນຮາກ
ຖ້າເຈົ້າໃຊ້ Ignition ເພື່ອຕັ້ງຄ່າໃໝ່ ຫຼື ຍ້າຍພາທິຊັນຮາກ, ພາທິຊັນນັ້ນຈະບໍ່ຂະຫຍາຍຕົວ ໂດຍອັດຕະໂນມັດໃນການບູດຄັ້ງທຳອິດ (ເບິ່ງການສົນທະນາທີ່ກ່ຽວຂ້ອງໃນ ບັນຫານີ້). ໃນກໍລະນີຂອງການຍ້າຍພາທິຊັນຮາກໄປຫາໃບດິສກ໌ໃໝ່ (ຫຼື ຫຼາຍໃບດິສກ໌), ເຈົ້າຄວນກຳນົດ ຂະໜາດພາທິຊັນທີ່ຕ້ອງການໂດຍໃຊ້ຟິວ size_mib. ຖ້າເປັນການຕັ້ງຄ່າລະບົບໄຟລ໌ຮາກ ໃນບ່ອນເດີມ ເຊັ່ນໃນຕົວຢ່າງ LUKS ດ້ານເທິງ, ເຈົ້າສາມາດປັບຂະໜາດພາທິຊັນທີ່ມີຢູ່ໂດຍໃຊ້ຟິວ resize:
variant: fcos
version: 1.7.0
storage:
disks:
- device: /dev/disk/by-id/coreos-boot-disk
partitions:
- label: root
number: 4
# 0 ໝາຍເຖິງການໃຊ້ພື້ນທີ່ທີ່ມີຢູ່ທັງໝົດ
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: root
ການເພີ່ມ swap
ຕົວຢ່າງນີ້ຈະສ້າງພາທິຊັນ swap ທີ່ຄອບຄຸມພື້ນທີ່ທັງໝົດຂອງອຸປະກອນ sdb, ສ້າງພື້ນທີ່ swap ໃນນັ້ນ, ແລະ ສ້າງ systemd swap unit ເພື່ອໃຫ້ພື້ນທີ່ swap ຖືກເປີດໃຊ້ງານໃນເວລາບູດ.
variant: fcos
version: 1.7.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: true
ການເພີ່ມບ່ອນເກັບຂໍ້ມູນເຄືອຂ່າຍ
ລະບົບ Fedora CoreOS ສາມາດຖືກຕັ້ງຄ່າເພື່ອເມົາທ໌ລະບົບໄຟລ໌ເຄືອຂ່າຍ ເຊັ່ນ NFS ແລະ CIFS ໄດ້. ວິທີທີ່ດີທີ່ສຸດແມ່ນການໃຊ້ Ignition ເພື່ອສ້າງ systemd units. ລະບົບໄຟລ໌ສາມາດຖືກເມົາທ໌ ໃນເວລາບູດໄດ້ໂດຍການສ້າງ mount unit ມາດຕະຖານ. ນອກຈາກນັ້ນ, ລະບົບໄຟລ໌ສາມາດຖືກເມົາທ໌ ເມື່ອຜູ້ໃຊ້ເຂົ້າເຖິງຈຸດເມົາທ໌ (mountpoint) ໂດຍການສ້າງ automount unit ເພີ່ມເຕີມ. ດ້ານລຸ່ມນີ້ແມ່ນຕົວຢ່າງຂອງແຕ່ລະແບບສຳລັບລະບົບໄຟລ໌ NFS.
ການຕັ້ງຄ່າການເມົາທ໌ NFS
|
ການສ້າງ systemd unit ເພື່ອເມົາທ໌ລະບົບໄຟລ໌ NFS ໃນເວລາບູດ.
ໄຟລ໌ .mount ຕ້ອງຖືກຕັ້ງຊື່ຕາມເສັ້ນທາງ (ເຊັ່ນ: /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.target
variant: 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.target
ຕົວຢ່າງຂັ້ນສູງ
ຕົວຢ່າງນີ້ຈະຕັ້ງຄ່າດິສກ໌ບູດແບບມິເລີ ພ້ອມກັບລະບົບໄຟລ໌ຮາກທີ່ມີການເຂົ້າລະຫັດດ້ວຍ TPM2, ຂຽນທັບຂະໜາດຂອງພາທິຊັນຮາກທີ່ສ້າງຂຶ້ນໂດຍອັດຕະໂນມັດ, ແລະ ເພີ່ມພາທິຊັນ /var ແບບມິເລີທີ່ມີການເຂົ້າລະຫັດ ເຊິ່ງໃຊ້ພື້ນທີ່ທີ່ເຫຼືອທັງໝົດຂອງດິສກ໌.
variant: fcos
version: 1.7.0
boot_device:
# Change to match target architecture (aarch64, ppc64le, etc.)
layout: x86_64
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: true
ຮູບແບບຜັງດິສກ໌
ທຸກໆລະບົບ Fedora CoreOS ເລີ່ມຕົ້ນດ້ວຍອິມເມຈດິສກ໌ດຽວກັນ ເຊິ່ງຈະແຕກຕ່າງກັນເລັກນ້ອຍ ລະຫວ່າງສະຖາປັດຕະຍະກຳ ໂດຍຂຶ້ນກັບສິ່ງທີ່ຈຳເປັນສຳລັບການບູດ. ໃນການບູດຄັ້ງທຳອິດ, ລະບົບໄຟລ໌ຮາກຈະຖືກຂະຫຍາຍໃຫ້ເຕັມພື້ນທີ່ທີ່ເຫຼືອຂອງດິສກ໌. ອິມເມຈດິສກ໌ສາມາດປັບແຕ່ງໄດ້ ໂດຍໃຊ້ການຕັ້ງຄ່າ Butane ເພື່ອຈັດພາທິຊັນດິສກ໌ໃໝ່ ແລະ ສ້າງ/ຟໍແມັດລະບົບໄຟລ໌. ການຕິດຕັ້ງແບບ Bare metal ກໍບໍ່ຕ່າງກັນ; ຕົວຕິດຕັ້ງພຽງແຕ່ສຳເນົາ raw image ໄປໃສ່ດິສກ໌ເປົ້າໝາຍ ແລະ ໃສ່ການຕັ້ງຄ່າທີ່ລະບຸໄວ້ໃນ /boot ເພື່ອໃຊ້ໃນການບູດຄັ້ງທຳອິດ.
| ເບິ່ງ ການຕັ້ງຄ່າລະບົບໄຟລ໌ຮາກໃໝ່ ສຳລັບຕົວຢ່າງກ່ຽວກັບການປ່ຽນແປງທີ່ຮອງຮັບໃນພາທິຊັນຮາກ. |
ຕາຕະລາງພາທິຊັນ
ບໍ່ແນະນຳໃຫ້ໃຊ້ໝາຍເລກພາທິຊັນເພື່ອອ້າງອີງເຖິງພາທິຊັນໃດໜຶ່ງ, ແຕ່ຄວນໃຊ້ເລເບວ (labels) ຫຼື UUID ແທນ. Fedora CoreOS ຈອງເລເບວ boot, boot-<number>, root, root-<number>, BIOS-BOOT, bios-<number>, EFI-SYSTEM, ແລະ esp-<number> ໄວ້, ລວມທັງຊື່ອຸປະກອນ RAID md-boot ແລະ md-root. ການສ້າງພາທິຊັນ, ລະບົບໄຟລ໌ ຫຼື ອຸປະກອນ RAID ດ້ວຍເລເບວເຫຼົ່ານີ້ແມ່ນບໍ່ຮອງຮັບ.
ຕາຕະລາງພາທິຊັນ x86_64
ອິມເມຈດິສກ໌ x86_64 ຖືກຟໍແມັດເປັນ GPT ພ້ອມກັບ MBR ປ້ອງກັນ. ມັນຮອງຮັບ ການບູດຜ່ານທັງ BIOS ແລະ UEFI (ລວມທັງ Secure Boot).
ຮູບແບບຜັງຕາຕະລາງພາທິຊັນໄດ້ປ່ຽນແປງຕາມການເວລາ. ຮູບແບບປັດຈຸບັນຄື:
ໝາຍເລກ |
ເລເບວ |
ລາຍລະອຽດ |
ປະເພດພາທິຊັນ |
1 |
BIOS-BOOT |
ບັນຈຸ BIOS GRUB image |
raw data |
2 |
EFI-SYSTEM |
ບັນຈຸ EFI GRUB image ແລະ Secure Boot shim |
FAT32 |
3 |
boot |
ບັນຈຸ GRUB configuration, kernel/initramfs images |
ext4 |
4 |
root |
ບັນຈຸລະບົບໄຟລ໌ຮາກ |
xfs |
ພາທິຊັນ EFI-SYSTEM ສາມາດຖືກລຶບ ຫຼື ຟໍແມັດໃໝ່ໄດ້ເມື່ອບູດແບບ BIOS. ໃນທຳນອງດຽວກັນ, ພາທິຊັນ BIOS-BOOT ກໍສາມາດຖືກລຶບ ຫຼື ຟໍແມັດໃໝ່ໄດ້ເມື່ອບູດແບບ EFI.
ລະບົບໄຟລ໌ທີ່ຖືກເມົາທ໌
Fedora CoreOS ໃຊ້ OSTree ເຊິ່ງເປັນລະບົບສຳລັບຈັດການລະບົບປະຕິບັດການຫຼາຍເວີຊັນ ທີ່ສາມາດບູດໄດ້ ແລະ ໃຊ້ບ່ອນເກັບຂໍ້ມູນຮ່ວມກັນ. ແຕ່ລະເວີຊັນຂອງລະບົບປະຕິບັດການ ແມ່ນສ່ວນໜຶ່ງຂອງລະບົບໄຟລ໌ /. ທຸກໆການຈັດວາງລະບົບ (deployments) ຈະໃຊ້ /var ຮ່ວມກັນ ເຊິ່ງສາມາດຢູ່ໃນລະບົບໄຟລ໌ດຽວກັນ ຫຼື ເມົາທ໌ແຍກຕ່າງຫາກກໍໄດ້.
ນີ້ແມ່ນຈຸດເມົາທ໌ເລີ່ມຕົ້ນສຳລັບລະບົບ Fedora CoreOS ທີ່ຕິດຕັ້ງໃນດິສກ໌ /dev/vda:
$ findmnt --real # ລາຍລະອຽດບາງຢ່າງຖືກຕັດອອກ
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 ro
ພາທິຊັນລະບົບ EFI ເຄີຍຖືກເມົາທ໌ທີ່ /boot/efi ໃນເມື່ອກ່ອນ, ແຕ່ປັດຈຸບັນບໍ່ແມ່ນແບບນັ້ນແລ້ວ. ໃນລະບົບທີ່ຕັ້ງຄ່າການເຮັດມິເລີອຸປະກອນບູດ, ຈະມີພາທິຊັນ EFI ທີ່ເປັນອິດສະຫຼະໃນແຕ່ລະດິສກ໌.
/ ທີ່ປ່ຽນແປງບໍ່ໄດ້, /usr ແບບອ່ານຢ່າງດຽວ
ເນື່ອງຈາກ OSTree ຖືກໃຊ້ເພື່ອຈັດການໄຟລ໌ທັງໝົດທີ່ເປັນຂອງລະບົບປະຕິບັດການ, ຈຸດເມົາທ໌ / ແລະ /usr ຈຶ່ງບໍ່ສາມາດຂຽນໄດ້. ການປ່ຽນແປງໃດໆ ຕໍ່ລະບົບປະຕິບັດການ ຄວນເຮັດຜ່ານ rpm-ostree.
ໃນທຳນອງດຽວກັນ, ຈຸດເມົາທ໌ /boot ບໍ່ສາມາດຂຽນໄດ້, ແລະ ພາທິຊັນລະບົບ EFI ບໍ່ໄດ້ຖືກເມົາທ໌ ໂດຍເລີ່ມຕົ້ນ. ລະບົບໄຟລ໌ເຫຼົ່ານີ້ຖືກຈັດການໂດຍ rpm-ostree ແລະ bootupd, ແລະ ຜູ້ດູແລລະບົບຕ້ອງບໍ່ແກ້ໄຂມັນໂດຍກົງ.
ການເພີ່ມໄດເຣັກທໍຣີລະດັບສູງສຸດ (ເຊັ່ນ /foo) ແມ່ນຍັງບໍ່ຮອງຮັບໃນປັດຈຸບັນ ແລະ ຖືກຫ້າມໂດຍຄຸນສົມບັດ immutable (ປ່ຽນແປງບໍ່ໄດ້).
/ ຕົວຈິງ (ເຊິ່ງແມ່ນຮາກຂອງລະບົບໄຟລ໌ໃນພາທິຊັນ root) ຖືກເມົາທ໌ແບບ ອ່ານຢ່າງດຽວ (readonly) ໃນ /sysroot ແລະ ຕ້ອງບໍ່ເຂົ້າເຖິງ ຫຼື ແກ້ໄຂໂດຍກົງ.
ການຕັ້ງຄ່າໃນ /etc ແລະ ສະຖານະໃນ /var
ສະຖານທີ່ດຽວທີ່ຮອງຮັບການຂຽນໄດ້ຄື /etc ແລະ /var. /etc ຄວນບັນຈຸ ສະເພາະໄຟລ໌ການຕັ້ງຄ່າ ແລະ ບໍ່ຄວນໃຊ້ເກັບຂໍ້ມູນ. ຂໍ້ມູນທັງໝົດຕ້ອງຖືກເກັບໄວ້ພາຍໃຕ້ /var ແລະ ຈະບໍ່ຖືກແຕະຕ້ອງໂດຍການອັບເກຣດລະບົບ. ສະຖານທີ່ດັ້ງເດີມທີ່ອາດຈະເກັບ ຂໍ້ມູນສະຖານະ (ເຊັ່ນ /home ຫຼື /srv) ແມ່ນ symlinks ທີ່ເຊື່ອມໄປຫາໄດເຣັກທໍຣີ ໃນ /var (ເຊັ່ນ /var/home ຫຼື /var/srv).
ການເລືອກເວີຊັນ ແລະ ການບູດ
ລາຍການເມນູ GRUB ຈະຖືກສ້າງຂຶ້ນສຳລັບແຕ່ລະເວີຊັນຂອງ Fedora CoreOS ທີ່ມີຢູ່ໃນລະບົບ. ລາຍການເມນູນີ້ອ້າງອີງເຖິງການຈັດວາງ (deployment) ຂອງ ostree ເຊິ່ງປະກອບດ້ວຍ Linux kernel, initramfs ແລະ ຄ່າ hash ທີ່ເຊື່ອມໂຍງກັບ ostree commit (ສົ່ງຜ່ານ kernel argument ostree=). ໃນລະຫວ່າງການບູດ, ostree ຈະອ່ານ kernel argument ນີ້ ເພື່ອຕັດສິນໃຈວ່າຈະໃຊ້ deployment ໃດເປັນລະບົບໄຟລ໌ຮາກ. ທຸກໆການອັບເດດ ຫຼື ການປ່ຽນແປງ ຕໍ່ລະບົບ (ການຕິດຕັ້ງແພັກເກດ, ການເພີ່ມ kernel arguments) ຈະສ້າງ deployment ໃໝ່. ສິ່ງນີ້ຊ່ວຍໃຫ້ສາມາດຢ້ອນກັບ (rolling back) ໄປຫາ deployment ກ່ອນໜ້າໄດ້ ຫາກການອັບເດດມີບັນຫາ.
Want to help? Learn how to contribute to Fedora Docs ›