ostree_on_alt/alt_on_ostree.md

93 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Установка ALT Linux в ostree
Для установки достаточно раздела 2ГБ.
Сборка архива корневой файловой системы
```
git clone https://gitea.basealt.ru/keremet/mkimage-profiles
cd mkimage-profiles
mkdir ~/out
make vm/acos.tar
cd -
```
Создание ветки в репозитории ostree
```
mkdir root
sudo tar xf out/acos-latest-x86_64.tar -C root/ --exclude=./dev/tty --exclude=./dev/tty0 --exclude=./dev/console --exclude=./dev/urandom --exclude=./dev/random --exclude=./dev/full --exclude=./dev/zero --exclude=/dev/null --exclude=./dev/pts/ptmx --exclude=./dev/null
sudo chroot root/ systemctl enable ignition-firstboot-complete.service sshd
sudo sed -i 's/^LABEL=ROOT\t/LABEL=boot\t/g' root/etc/fstab
sudo sed -i 's/^AcceptEnv /#AcceptEnv /g' root/etc/openssh/sshd_config
sudo sed -i 's/^# WHEEL_USERS ALL=(ALL) ALL$/WHEEL_USERS ALL=(ALL) ALL/g' root/etc/sudoers
echo "blacklist floppy" | sudo tee root/etc/modprobe.d/blacklist-floppy.conf
sudo mkdir root/sysroot
sudo ln -s sysroot/ostree root/ostree
sudo chroot root/ chown :wheel /usr/bin/sudo /bin/su
sudo chroot root/ chmod 710 /usr/bin/sudo /bin/su
sudo chroot root/ chmod ug+s /usr/bin/sudo /bin/su
KERNEL=`sudo find root/boot/ -type f -name "vmlinuz-*"`
SHA=`sudo sha256sum "$KERNEL" | awk '{print $1;}'`
sudo mv "$KERNEL" "$KERNEL-$SHA"
sudo rm -f root/boot/vmlinuz
sudo rm -f root/boot/initrd*
sudo chroot root/ dracut --reproducible --gzip -v --add ignition --add ostree -f /boot/initramfs-$SHA --no-hostonly --omit-drivers=floppy --omit=nfs --omit=lvm --omit=iscsi --kver `ls root/lib/modules`
sudo rm -rf root/usr/etc
sudo mv root/etc root/usr/etc
ostree init --repo=repo --mode=archive
sudo ostree commit --repo=repo --tree=dir=root -b alt/x86_64/coreos/stable --no-xattrs --no-bindings --parent=none --mode-ro-executables --add-metadata-string=version=sisyphus.`date +%Y%m%d`.0.0
```
Последняя команда выдаст хеш коммита. На коммит можно ссылаться по этому хешу или по имени ветки (параметр -b).
На диске, на который выполняется установка (в данном примере /dev/sdb) создать файловую систему и минимальный набор каталогов для ostree. Метка boot нужна для поиска раздела в ignition.
```
DEVICE=/dev/sdb
sudo parted $DEVICE mktable msdos
sudo parted -a optimal $DEVICE mkpart primary ext4 2MIB 100%
sudo parted $DEVICE set 1 boot on
sudo mkfs.ext4 -L boot "$DEVICE"1
sudo mkdir /tmp/acos
sudo mount "$DEVICE"1 /tmp/acos
sudo ostree admin init-fs --modern /tmp/acos
```
Установить GRUB
```
sudo grub-install --root-directory=/tmp/acos $DEVICE
sudo ln -s ../loader/grub.cfg /tmp/acos/boot/grub/grub.cfg
```
Выполнить развертывание операционной системы из репозитория ostree.
```
sudo ostree pull-local --repo /tmp/acos/ostree/repo /home/keremet/repo alt/x86_64/coreos/stable
sudo ostree config --repo /tmp/acos/ostree/repo set sysroot.bootloader grub2
sudo ostree refs --repo /tmp/acos/ostree/repo --create alt:alt/x86_64/coreos/stable alt/x86_64/coreos/stable
sudo ostree admin os-init alt-coreos --sysroot /tmp/acos
OSTREE_BOOT_PARTITION="/boot" sudo ostree admin deploy alt:alt/x86_64/coreos/stable --sysroot /tmp/acos --os alt-coreos --karg-append=ignition.platform.id=metal --karg-append=\$ignition_firstboot --karg-append=quiet --karg-append=root=UUID=`sudo blkid --match-tag UUID -o value "$DEVICE"1`
```
Установить пароль рута в новой системе
```
sudo chroot /tmp/acos/ostree/boot.1/alt-coreos/*/0/ passwd
```
Создать конфигурационные файлы ignition
```
sudo mkdir /tmp/acos/ignition
sudo cp config.ign /tmp/acos/ignition/
sudo touch /tmp/acos/boot/ignition.firstboot
```
-----------------------------------------
В случае каких-то ошибок для повтора инструкции можно восстановить исходное состояние
```
DEVICE=/dev/sdb
sudo rm -rf repo/ root/
sudo umount /tmp/acos
sudo rm -rf /tmp/acos
sudo dd if=/dev/zero of=$DEVICE bs=1M
```