Добавлено описание установки ALT Linux в ostree
This commit is contained in:
parent
ba8e2a1ac2
commit
6316341594
@ -3,6 +3,4 @@
|
|||||||
1. Подготовка корневой файловой системы для коммита - можно сделать с помощью [mkimage-profiles](mkimage-profiles.md)
|
1. Подготовка корневой файловой системы для коммита - можно сделать с помощью [mkimage-profiles](mkimage-profiles.md)
|
||||||
2. Подготовка корневой файловой системы [ostree](ostree_in_cosa.md)
|
2. Подготовка корневой файловой системы [ostree](ostree_in_cosa.md)
|
||||||
3. [Установка](rootfs_install.md)
|
3. [Установка](rootfs_install.md)
|
||||||
|
4. [Установка ALT Linux в ostree](alt_on_ostree.md)
|
||||||
Осталось разобраться как сделать так, чтобы ОС запускалась не из корневого каталога, а из произвольного, переданного параметром ядра ostree. То есть надо создать initrd, в котором обрабатывался бы этот параметр ядра.
|
|
||||||
Гипотеза: достаточно пересобрать ostree без "--without-dracut" и команде dracut передать "--add ostree"
|
|
||||||
|
71
alt_on_ostree.md
Normal file
71
alt_on_ostree.md
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
# Установка ALT Linux в ostree
|
||||||
|
|
||||||
|
Для установки достаточно раздела 1ГБ. Когда ostree обновиться в репозитории можно будет заменить "libostree-2020.8-alt2.x86_64.rpm ostree-2020.8-alt2.x86_64.rpm" на ostree
|
||||||
|
|
||||||
|
```
|
||||||
|
git clone git://git.altlinux.org/gears/m/mkimage-profiles.git
|
||||||
|
cd mkimage-profiles
|
||||||
|
make vm/bare.tar
|
||||||
|
cp $TMP/out/bare-20210702-x86_64.tar ./
|
||||||
|
ostree init --repo=repo --mode=archive
|
||||||
|
mkdir root
|
||||||
|
tar xf bare-20210702-x86_64.tar -C root/
|
||||||
|
mkdir root/sysroot
|
||||||
|
ln -s sysroot/ostree root/ostree
|
||||||
|
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
|
||||||
|
apt-get install -o "RPM::RootDir=$PWD/root" libostree-2020.8-alt2.x86_64.rpm ostree-2020.8-alt2.x86_64.rpm
|
||||||
|
ostree commit --repo=repo --tree=dir=root -b sokolov1 --owner-uid 0 --owner-gid 0 --no-xattrs --no-bindings --parent=none --mode-ro-executables --timestamp '2021-06-14 16:08:54 +0200'
|
||||||
|
```
|
||||||
|
|
||||||
|
Последняя команда выдаст хеш коммита. Его надо запомнить. Пусть он будет 7376008586f183d872a47b78ebc83ccc7e44349023b271506903c658c9778409
|
||||||
|
|
||||||
|
На диске, на который выполняется установка (в данном примере /dev/sdb) создать файловую систему и минимальный набор каталогов для ostree
|
||||||
|
```
|
||||||
|
parted /dev/sdb mktable msdos
|
||||||
|
parted -a optimal /dev/sdb mkpart primary ext4 2MIB 100%
|
||||||
|
mkfs.ext4 -L ROOT /dev/sdb1
|
||||||
|
mkdir /tmp/sdb1
|
||||||
|
mount /dev/sdb1 /tmp/sdb1
|
||||||
|
ostree admin init-fs --modern /tmp/sdb1
|
||||||
|
```
|
||||||
|
|
||||||
|
Выполнить развертывание операционной системы из репозитория ostree. Важно: заменить хэш коммита на свой
|
||||||
|
```
|
||||||
|
ostree pull-local --repo /tmp/sdb1/ostree/repo /home/keremet/repo 7376008586f183d872a47b78ebc83ccc7e44349023b271506903c658c9778409
|
||||||
|
ostree refs --repo /tmp/sdb1/ostree/repo --create altlinux:altlinux/x86_64/coreos/stable 7376008586f183d872a47b78ebc83ccc7e44349023b271506903c658c9778409
|
||||||
|
ostree admin os-init alt-coreos --sysroot /tmp/sdb1
|
||||||
|
ostree admin deploy altlinux:altlinux/x86_64/coreos/stable --sysroot /tmp/sdb1 --os alt-coreos
|
||||||
|
```
|
||||||
|
|
||||||
|
Последняя команда выдаст сообщение об ошибке (error: Failed to find kernel in /usr/lib/modules, /usr/lib/ostree-boot or /boot). Это сообщение можно игнорировать
|
||||||
|
|
||||||
|
Установить GRUB
|
||||||
|
```
|
||||||
|
grub-install --root-directory=/tmp/sdb1 /dev/sdb
|
||||||
|
```
|
||||||
|
|
||||||
|
Разместить ядро и initramfs в каталоге /boot новой системы. Важно: в initramfs должен быть модуль ostree
|
||||||
|
```
|
||||||
|
cp /boot/vmlinuz /tmp/sdb1/boot/
|
||||||
|
mkdir /tmp/dracut
|
||||||
|
dracut --reproducible --gzip -v --add ostree --tmpdir=/tmp/dracut -f /tmp/sdb1/boot/initrd.img --no-hostonly --omit=nfs --omit=lvm --omit=iscsi --kver `uname -r`
|
||||||
|
```
|
||||||
|
|
||||||
|
Создание заготовки конфига GRUB
|
||||||
|
```
|
||||||
|
grub-mkconfig -o /tmp/sdb1/boot/grub/grub.cfg
|
||||||
|
```
|
||||||
|
|
||||||
|
Редактирование /tmp/sdb1/boot/grub/grub.cfg (UUID заменить на то, что выдаст blkid, добавить параметр ядра ostree=/ostree/boot/1, убрать параметр splash, добавить параметр fastboot, изменить название пункта меню (ALT CoreOS 0.0.1), оставить его один)
|
||||||
|
|
||||||
|
Так как модуль ostree требует символическую ссылку, создать ее. Важно - скорректировать каталог (хэш), на который должна указывать ссылка
|
||||||
|
```
|
||||||
|
mkdir /tmp/sdb1/ostree/boot
|
||||||
|
ln -s ../deploy/alt-coreos/deploy/7376008586f183d872a47b78ebc83ccc7e44349023b271506903c658c9778409.0/ /tmp/sdb1/ostree/boot/1
|
||||||
|
```
|
||||||
|
|
||||||
|
Установить пароль рута в новой системе
|
||||||
|
```
|
||||||
|
chroot /tmp/sdb1/ostree/boot/1
|
||||||
|
passwd
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user