ostree_on_alt/alt_on_ostree.md

79 lines
3.3 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
```
ostree init --repo=repo --mode=archive
mkdir root
tar xf ~/out/acos-latest-x86_64.tar -C root/
mkdir root/sysroot
ln -s sysroot/ostree root/ostree
rm -rf root/usr/etc
mv root/etc root/usr/etc
rm -f root/dev/null root/dev/pts/ptmx root/dev/console rm root/dev/full root/dev/random root/dev/tty root/dev/tty0 root/dev/urandom root/dev/zero
KERNEL=`find root/boot/ -type f -name "vmlinuz-*"`
SHA=`sha256sum "$KERNEL" | awk '{print $1;}'`
mv "$KERNEL" "$KERNEL-$SHA"
rm -f root/boot/vmlinuz
rm -f root/boot/initrd*
chroot root/ dracut --reproducible --gzip -v --add ostree -f /boot/initramfs-$SHA --no-hostonly --omit=nfs --omit=lvm --omit=iscsi --kver `ls root/lib/modules`
ostree commit --repo=repo --tree=dir=root -b acos --owner-uid 0 --owner-gid 0 --no-xattrs --no-bindings --parent=none --mode-ro-executables
```
Последняя команда выдаст хеш коммита. На коммит можно ссылаться по этому хешу или по имени ветки (параметр -b).
На диске, на который выполняется установка (в данном примере /dev/sdb) создать файловую систему и минимальный набор каталогов для ostree
```
DEVICE=/dev/sdb
parted $DEVICE mktable msdos
parted -a optimal $DEVICE mkpart primary ext4 2MIB 100%
mkfs.ext4 -L ROOT "$DEVICE"1
mkdir /tmp/acos
mount "$DEVICE"1 /tmp/acos
ostree admin init-fs --modern /tmp/acos
```
Выполнить развертывание операционной системы из репозитория ostree.
```
ostree pull-local --repo /tmp/acos/ostree/repo /home/keremet/repo acos
ostree refs --repo /tmp/acos/ostree/repo --create acos:acos acos
ostree admin os-init alt-coreos --sysroot /tmp/acos
ostree admin deploy acos:acos --sysroot /tmp/acos --os alt-coreos
```
Установить GRUB
```
grub-install --root-directory=/tmp/acos $DEVICE
```
Создание заготовки конфига GRUB
```
grub-mkconfig -o /tmp/acos/boot/grub/grub.cfg
```
Редактирование /tmp/acos/boot/grub/grub.cfg (
UUID заменить на то, что выдаст blkid;
заменить linux и initrd на значения из /tmp/acos/boot/loader.1/entries/ostree-1-alt-coreos.conf с приставкой "/boot";
добавить параметр ядра ostree со значением из /tmp/acos/boot/loader.1/entries/ostree-1-alt-coreos.conf;
изменить название пункта меню на значение из /tmp/acos/boot/loader.1/entries/ostree-1-alt-coreos.conf;
убрать параметр splash;
оставить только один пункт меню
)
Установить пароль рута в новой системе. Важно - скорректировать каталог (хэш), на который должна указывать ссылка
```
chroot /tmp/acos/ostree/boot.1/alt-coreos/7e947b5c6fde4ce0d7fd65e4ef5ce82dcf5f9bd53497d5956c1fd4c2c59b78dc/0/ passwd
```