79 lines
3.3 KiB
Markdown
79 lines
3.3 KiB
Markdown
# Установка 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
|
||
```
|