ostree_on_alt/alt_on_ostree.md

92 lines
3.8 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ГБ.
Потребуется GRUB с поддержкой команды blscfg
```
wget http://git.altlinux.org/tasks/279741/build/100/x86_64/rpms/grub-common-2.06-alt2.rc1.x86_64.rpm
wget http://git.altlinux.org/tasks/279741/build/100/x86_64/rpms/grub-efi-2.06-alt2.rc1.x86_64.rpm
wget http://git.altlinux.org/tasks/279741/build/100/x86_64/rpms/grub-pc-2.06-alt2.rc1.x86_64.rpm
sudo apt-get install grub-common-2.06-alt2.rc1.x86_64.rpm grub-efi-2.06-alt2.rc1.x86_64.rpm grub-pc-2.06-alt2.rc1.x86_64.rpm
```
Сборка архива корневой файловой системы
```
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/ --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 apt-get install -o "RPM::RootDir=$PWD/root" grub-common-2.06-alt2.rc1.x86_64.rpm grub-efi-2.06-alt2.rc1.x86_64.rpm grub-pc-2.06-alt2.rc1.x86_64.rpm
mkdir root/sysroot
ln -s sysroot/ostree root/ostree
rm -rf root/usr/etc
sed -i '3a\LABEL=BOOT\t/boot\text4\tdefaults\t0\t0' root/etc/fstab
mv root/etc root/usr/etc
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*
sudo 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`
sudo ostree commit --repo=repo --tree=dir=root -b alt/x86_64/coreos/stable --owner-uid 0 --owner-gid 0 --no-xattrs --no-bindings --parent=none --mode-ro-executables
```
Последняя команда выдаст хеш коммита. На коммит можно ссылаться по этому хешу или по имени ветки (параметр -b).
На диске, на который выполняется установка (в данном примере /dev/sdb) создать файловую систему и минимальный набор каталогов для ostree
```
DEVICE=/dev/sdb
sudo parted $DEVICE mktable msdos
sudo parted -a optimal $DEVICE mkpart primary ext4 2MIB 20%
sudo parted $DEVICE set 1 boot on
sudo mkfs.ext4 -L BOOT "$DEVICE"1
sudo parted -a optimal $DEVICE mkpart primary ext4 20% 100%
sudo mkfs.ext4 -L ROOT "$DEVICE"2
sudo mkdir /tmp/acos
sudo mount "$DEVICE"2 /tmp/acos
sudo mkdir /tmp/acos/boot
sudo mount "$DEVICE"1 /tmp/acos/boot
sudo ostree admin init-fs --modern /tmp/acos
```
Выполнить развертывание операционной системы из репозитория ostree.
```
sudo ostree pull-local --repo /tmp/acos/ostree/repo /home/keremet/repo alt/x86_64/coreos/stable
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
sudo ostree admin deploy alt:alt/x86_64/coreos/stable --sysroot /tmp/acos --os alt-coreos --karg-append=quiet --karg-append=root=UUID=`sudo blkid --match-tag UUID -o value "$DEVICE"2`
```
Установить GRUB
```
sudo grub-install --root-directory=/tmp/acos $DEVICE
```
Конфиг GRUB /tmp/acos/boot/grub/grub.cfg заполнить следующим содержимым:
```
function load_video {
insmod all_video
}
set root='hd0,msdos1'
set timeout=5
blscfg
```
Установить пароль рута в новой системе
```
sudo chroot /tmp/acos/ostree/boot.1/alt-coreos/*/0/ passwd
```