Multi boot Linux + OpenBSD UEFI + GPT + software raid keskkonnas
Sissejuhatus
TODO
non-raid juhtumil
Väited
- tundub, et openbsd bootx64.efi rakendus otsib plokkseadmelt 'OpenBSD data' nimelise partitsiooni ja püüab sealt disklabel 'a' pealt käivitada /bsd nimega tuuma
non-raid dual boot debian-openbsd süsteemi tekitamiseks sobib
- paigaldada esmalt debian ja jätta osa plokkseademest partitsioneerimata (tulemusena on gpt partsioonitabeli kontrolli all /dev/sda1 - /boot/efi ja /dev/sda2 linux lvm)
- käivitada debian os ja tekitada kolmas gpt partitsioon openbsd jaoks, tüüp 'OpenBSD data'
- bootida arvuti openbsd installerilt (nt ajutiselt kasutada /dev/sdb (virtuaalse arvuti puhul juurde lisatud tavaline plokkseade, füüsilise arvuti puhul usb pult), kuhu on install69.img kopitud dd abil)
- paigaldada openbsd efi ja gpt režiimis
Tulemusena on /dev/sda1 peal valikud 'BOOT' ja 'debian' - vastavalt openbsd ja debian jaoks.
OpenBSD operatsioonisüsteemi kopeerimiseks ühest arvutist teisse teiseks operatsioonisüsteemiks
- dst arvuti dst plokkseadmel on juba olemas uefi ja debian (/dev/sda1 on vfat ja /dev/sda2 on lvm)
- dst arvuti plokkseadmel on partitsioneerimata vaba ruumi, tekitada /dev/sda3
- käivitada dst arvuti debian režiimis ja meelepärasele dst plokkseadme gpt partitsiooni tüübiks määrata 'openbsd data'
- seisata dst arvuti ajutiselt
- teha src kävitule dst plookseade ajutisel kättesaadavaks ja käivitada src arvutis openbsd süsteem (native, live cd vms)
- monteerida src arvuti /dev/sd0i (efi vfat) külge /mnt/sd0i alla
- monteerida dst arvuti /dev/sd1i (efi vfat) külge /mnt/sd1i alla
- tekitada dst plokkseadme dst partitsioonile dislabel, disklabel -E sd1 (a - juurikas ja b - swap)
- tekitada dst plokkseadmele failisüsteem, newfs /dev/rsd1a
- monteerida dst arvuti /dev/sd1a külge /mnt/sd1a alla
- kopeerida efi openbsd boot rakendus, rsync -avH --numeric-ids /mnt/sd0i/BOOT/ /mnt/sd1i/BOOT/
- kopeerida efi refind boot rakendus, rsync -avH --numeric-ids /mnt/sd0i/refind/ /mnt/sd1i/refind/
- kopeerida juurfailisüsteem, rsync -avH --numeric-ids --exclude=mnt / /mnt/sd1a/
- kohendada riistvara halduslideses efi boot valikuid
- tekitada sobiv refind.conf, nt
Kopeerimisel tar abil tundub, et on lihtsam kasutada gtar programmi kuna OpenBSD enda tar on üsna imelike omadustega (nt eriliselt tuleb tegeleda loabittide säilitamisega).
# cat /mnt/sd0i/EFI/refind/refind.conf menuentry "OpenBSD" { loader /EFI/BOOT/BOOTX64.efi icon /EFI/BOOT/icons/os_freebsd.png }
Tööpõhimõte
Linux poolt vaadates on eesmärk tekitada selline dual boot arvuti
# efibootmgr BootCurrent: 0003 Timeout: 1 seconds BootOrder: 0003,0004 Boot0003* debian Boot0004* UEFI OS
kus
- debian - operatsioonisüsteem Debian
- UEFI OS - operatsioonisüsteem OpenBSD
Seejuures on kasutusel kaks plokkseadet, Linux seisukohalt /dev/sda ja /dev/sdb ja tulemusena on seal sellised partitsioonid
# parted /dev/sda GNU Parted 3.2 Using /dev/sda Welcome to GNU Parted! Type 'help' to view a list of commands. (parted) unit s (parted) p Warning: Not all of the space available to /dev/sda appears to be used, you can fix the GPT to use all of the space (an extra 30 blocks) or continue with the current setting? Fix/Ignore? I Model: ATA SAMSUNG SP0411C (scsi) Disk /dev/sda: 78242976s Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name Flags 1 2048s 999423s 997376s fat32 boot, esp 2 999424s 16623615s 15624192s raid 3 16623616s 78242912s 61619297s
kus
- tõenäolselt on parem mitte Fix'ima hakata
- kasutatakse gpt partitsioonitabelit
- nr 1 ESP partitsioon on kõigile operatsioonisüsteemidele ühine
- nr 2 partitsioon on Linux software raid
- nr 3 partitsioon on OpenBSD software raid
fdisk näitab sama pilti nii
# fdisk /dev/sda -l Disk /dev/sda: 37.3 GiB, 40060403712 bytes, 78242976 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: F0E7EF22-0AAF-4472-BED5-3112CCA627F3 Device Start End Sectors Size Type /dev/sda1 2048 999423 997376 487M EFI System /dev/sda2 999424 16623615 15624192 7.5G Linux RAID /dev/sda3 16623616 78242912 61619297 29.4G OpenBSD data
OpenBSD poolelt paistab (mõlemad füüsilised kettad, st sd0 ja sd1)
# fdisk sd0 Disk: sd0 Usable LBA: 64 to 78242912 [78242976 Sectors] #: type [ start: size ] ------------------------------------------------------------------------ 0: EFI Sys [ 2048: 997376 ] 1: a19d880f-05fc-4d3b-a006-743f0f84911e [ 999424: 15624192 ] 2: OpenBSD [ 16623616: 61619297 ]
ning disklabel partitsioonid
# disklabel sd0 # /dev/rsd0c: type: SCSI disk: SCSI disk label: SAMSUNG SP0411C duid: dc66798328ef0108 flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 255 sectors/cylinder: 16065 cylinders: 4870 total sectors: 78242976 boundstart: 16623616 boundend: 78242913 drivedata: 0 16 partitions: # size offset fstype [fsize bsize cpg] a: 61619297 16623616 RAID c: 78242976 0 unused i: 997376 2048 MSDOS j: 15624192 999424 unknown
ja raid sisu
# disklabel sd2 # /dev/rsd2c: type: SCSI disk: SCSI disk label: SR RAID 1 duid: dd36ee39ec473660 flags: bytes/sector: 512 sectors/track: 63 tracks/cylinder: 255 sectors/cylinder: 16065 cylinders: 3835 total sectors: 61618769 boundstart: 1024 boundend: 61618706 drivedata: 0 16 partitions: # size offset fstype [fsize bsize cpg] a: 28000000 1024 4.2BSD 2048 16384 12958 # / b: 2000000 28001024 swap # none c: 61618769 0 unused d: 31617664 30001024 4.2BSD 2048 16384 1 i: 960 64 MSDOS
kus
- tõenäoliselt raid seadmel ei oleks olnud vajadust tekitada gpt moodi partitsioone (i)
# bioctl sd2 Volume Status Size Device softraid0 0 Online 31548809728 sd2 RAID1 0 Online 31548809728 0:0.0 noencl <sd0a> 1 Online 31548809728 0:1.0 noencl <sd1a>
Süsteemi ettevalmistamise tegevused
- arvuti riistvara käivitatakse UEFI režiimis
- paigaldatakse Debian, kasutades GPT partitsioonitabelit (vaikimisi UEFI riistvaral nii kasutatakse)
- paigaldatakse OpenBSD (vajalik gpt partitsioon moodustatakse väljudes installerist shelli)
Linux paigaldamine
Linux paigaldatakse tavalisel viisil
- installeris moodustatakse /boot/efi jaoks ESP partitsioonid 512 MBait suurusega
- installeris moodustatakse software raid kahest partitsioonist /dev/sda2 ja /dev/sdb2
- installeris moodustatakse lvm köited /dev/system/swap ja /dev/system/root seadmele /dev/md0
OpenBSD paigaldamine
OpenBSD paigaldamise käigus
- väljutakse korraks installerist ja moodustatakse ketastele kolmas partitsioon, tüüp A6 (OpenBSD)
- tekitatakse tarkvaraline raid OpenBSD vahenditega
- jätkatakse OpenBSD paigaldamist tavalisel viisil, software raid plokkseadmele
OpenBSD operatsioonisüsteemi uuendamine
- Igaks juhuks võiks kasutada uuendamisel selle versiooni efi bootx64.efi rakendust /bsd.upgrade bootimisel, millele uuendatakse
- sysupgrade kasutamisel võiks protsessi töö lõpetada peatamisega enne rebooti
# sysupgrade -k -n
- tundub, et sysupgrade töötab kõige paremini kui juurfailisüsteem asub /dev/sd1a vms 'a' disk slice peal
Kasulikud lisamaterjalid
- TODO