Добавлено описание установки ALT Linux в ostree
This commit is contained in:
parent
ba8e2a1ac2
commit
6316341594
@ -3,6 +3,4 @@
|
||||
1. Подготовка корневой файловой системы для коммита - можно сделать с помощью [mkimage-profiles](mkimage-profiles.md)
|
||||
2. Подготовка корневой файловой системы [ostree](ostree_in_cosa.md)
|
||||
3. [Установка](rootfs_install.md)
|
||||
|
||||
Осталось разобраться как сделать так, чтобы ОС запускалась не из корневого каталога, а из произвольного, переданного параметром ядра ostree. То есть надо создать initrd, в котором обрабатывался бы этот параметр ядра.
|
||||
Гипотеза: достаточно пересобрать ostree без "--without-dracut" и команде dracut передать "--add ostree"
|
||||
4. [Установка ALT Linux в ostree](alt_on_ostree.md)
|
||||
|
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