2021-07-05 10:03:08 +03:00
# Установка ALT Linux в ostree
2021-07-13 16:20:54 +03:00
Для установки достаточно раздела 2ГБ.
2021-07-05 10:03:08 +03:00
2021-07-19 19:28:31 +03:00
Потребуется 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
```
2021-07-13 16:20:54 +03:00
Сборка архива корневой файловой системы
2021-07-05 10:03:08 +03:00
```
2021-07-13 16:20:54 +03:00
git clone https://gitea.basealt.ru/keremet/mkimage-profiles
2021-07-05 10:03:08 +03:00
cd mkimage-profiles
2021-07-13 16:20:54 +03:00
mkdir ~/out
make vm/acos.tar
cd -
```
Создание ветки в репозитории ostree
```
2021-07-05 10:03:08 +03:00
ostree init --repo=repo --mode=archive
mkdir root
2021-07-19 19:28:31 +03:00
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
2021-07-05 10:03:08 +03:00
mkdir root/sysroot
ln -s sysroot/ostree root/ostree
2021-07-13 16:20:54 +03:00
rm -rf root/usr/etc
2021-07-19 19:28:31 +03:00
sed -i '3a\LABEL=BOOT\t/boot\text4\tdefaults\t0\t0' root/etc/fstab
2021-07-13 16:20:54 +03:00
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*
2021-07-19 19:28:31 +03:00
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`
2021-07-13 16:20:54 +03:00
2021-07-19 19:28:31 +03:00
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
2021-07-05 10:03:08 +03:00
```
2021-07-13 16:20:54 +03:00
Последняя команда выдаст хеш коммита. Н а коммит можно ссылаться по этому хешу или по имени ветки (параметр -b).
2021-07-05 10:03:08 +03:00
Н а диске, на который выполняется установка (в данном примере /dev/sdb) создать файловую систему и минимальный набор каталогов для ostree
```
2021-07-13 16:20:54 +03:00
DEVICE=/dev/sdb
2021-07-19 19:28:31 +03:00
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
2021-07-05 10:03:08 +03:00
```
2021-07-13 16:20:54 +03:00
Выполнить развертывание операционной системы из репозитория ostree.
2021-07-05 10:03:08 +03:00
```
2021-07-19 19:28:31 +03:00
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`
2021-07-05 10:03:08 +03:00
```
Установить GRUB
```
2021-07-19 19:28:31 +03:00
sudo grub-install --root-directory=/tmp/acos $DEVICE
2021-07-05 10:03:08 +03:00
```
2021-07-19 19:28:31 +03:00
Конфиг GRUB /tmp/acos/boot/grub/grub.cfg заполнить следующим содержимым:
2021-07-05 10:03:08 +03:00
```
2021-07-19 19:28:31 +03:00
function load_video {
insmod all_video
}
set root='hd0,msdos1'
set timeout=5
blscfg
2021-07-05 10:03:08 +03:00
```
2021-07-19 19:28:31 +03:00
Установить пароль рута в новой системе
2021-07-05 10:03:08 +03:00
```
2021-07-19 19:28:31 +03:00
sudo chroot /tmp/acos/ostree/boot.1/alt-coreos/*/0/ passwd
2021-07-05 10:03:08 +03:00
```