Скорректированы сборка и обновление под ostree-2013.alt1
This commit is contained in:
parent
c2f933b0f9
commit
7fef5ae49f
@ -2,14 +2,6 @@
|
|||||||
|
|
||||||
Для установки достаточно раздела 2ГБ.
|
Для установки достаточно раздела 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
|
git clone https://gitea.basealt.ru/keremet/mkimage-profiles
|
||||||
@ -24,11 +16,9 @@ cd -
|
|||||||
ostree init --repo=repo --mode=archive
|
ostree init --repo=repo --mode=archive
|
||||||
mkdir root
|
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
|
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
|
mkdir root/sysroot
|
||||||
ln -s sysroot/ostree root/ostree
|
ln -s sysroot/ostree root/ostree
|
||||||
rm -rf root/usr/etc
|
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
|
mv root/etc root/usr/etc
|
||||||
|
|
||||||
KERNEL=`find root/boot/ -type f -name "vmlinuz-*"`
|
KERNEL=`find root/boot/ -type f -name "vmlinuz-*"`
|
||||||
@ -38,7 +28,7 @@ rm -f root/boot/vmlinuz
|
|||||||
rm -f root/boot/initrd*
|
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 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
|
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 --add-metadata-string=version=sisyphus.`date +%Y%m%d`.0.0
|
||||||
```
|
```
|
||||||
|
|
||||||
Последняя команда выдаст хеш коммита. На коммит можно ссылаться по этому хешу или по имени ветки (параметр -b).
|
Последняя команда выдаст хеш коммита. На коммит можно ссылаться по этому хешу или по имени ветки (параметр -b).
|
||||||
@ -47,45 +37,41 @@ sudo ostree commit --repo=repo --tree=dir=root -b alt/x86_64/coreos/stable --ow
|
|||||||
```
|
```
|
||||||
DEVICE=/dev/sdb
|
DEVICE=/dev/sdb
|
||||||
sudo parted $DEVICE mktable msdos
|
sudo parted $DEVICE mktable msdos
|
||||||
sudo parted -a optimal $DEVICE mkpart primary ext4 2MIB 20%
|
sudo parted -a optimal $DEVICE mkpart primary ext4 2MIB 100%
|
||||||
sudo parted $DEVICE set 1 boot on
|
sudo parted $DEVICE set 1 boot on
|
||||||
sudo mkfs.ext4 -L BOOT "$DEVICE"1
|
sudo mkfs.ext4 -L ROOT "$DEVICE"1
|
||||||
|
|
||||||
sudo parted -a optimal $DEVICE mkpart primary ext4 20% 100%
|
|
||||||
sudo mkfs.ext4 -L ROOT "$DEVICE"2
|
|
||||||
|
|
||||||
sudo mkdir /tmp/acos
|
sudo mkdir /tmp/acos
|
||||||
sudo mount "$DEVICE"2 /tmp/acos
|
sudo mount "$DEVICE"1 /tmp/acos
|
||||||
|
|
||||||
sudo mkdir /tmp/acos/boot
|
|
||||||
sudo mount "$DEVICE"1 /tmp/acos/boot
|
|
||||||
sudo ostree admin init-fs --modern /tmp/acos
|
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
|
Установить GRUB
|
||||||
```
|
```
|
||||||
sudo grub-install --root-directory=/tmp/acos $DEVICE
|
sudo grub-install --root-directory=/tmp/acos $DEVICE
|
||||||
|
sudo ln -s ../loader/grub.cfg /tmp/acos/boot/grub/grub.cfg
|
||||||
```
|
```
|
||||||
|
|
||||||
Конфиг GRUB /tmp/acos/boot/grub/grub.cfg заполнить следующим содержимым:
|
Выполнить развертывание операционной системы из репозитория ostree.
|
||||||
```
|
```
|
||||||
function load_video {
|
sudo ostree pull-local --repo /tmp/acos/ostree/repo /home/keremet/repo alt/x86_64/coreos/stable
|
||||||
insmod all_video
|
sudo ostree config --repo /tmp/acos/ostree/repo set sysroot.bootloader grub2
|
||||||
}
|
sudo ostree refs --repo /tmp/acos/ostree/repo --create alt:alt/x86_64/coreos/stable alt/x86_64/coreos/stable
|
||||||
set root='hd0,msdos1'
|
sudo ostree admin os-init alt-coreos --sysroot /tmp/acos
|
||||||
set timeout=5
|
OSTREE_BOOT_PARTITION="/boot" 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"1`
|
||||||
blscfg
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Установить пароль рута в новой системе
|
Установить пароль рута в новой системе
|
||||||
```
|
```
|
||||||
sudo chroot /tmp/acos/ostree/boot.1/alt-coreos/*/0/ passwd
|
sudo chroot /tmp/acos/ostree/boot.1/alt-coreos/*/0/ passwd
|
||||||
```
|
```
|
||||||
|
|
||||||
|
-----------------------------------------
|
||||||
|
|
||||||
|
В случае каких-то ошибок для повтора инструкции можно восстановить исходное состояние
|
||||||
|
```
|
||||||
|
DEVICE=/dev/sdb
|
||||||
|
sudo rm -rf repo/ root/
|
||||||
|
sudo umount /tmp/acos
|
||||||
|
rm -rf /tmp/acos
|
||||||
|
sudo dd if=/dev/zero of=$DEVICE bs=1M
|
||||||
|
```
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
# Обновление ALT Linux в ostree
|
# Обновление ALT Linux в ostree
|
||||||
|
|
||||||
На сервере в ветке, из которой была установлена ОС в ostree [подробнее об установке](alt_on_ostree.md), создать новый коммит. Для этого внести изменения в каталог root и вызвать ostree commit без параметра --parent=none. Например так:
|
На сервере в ветке, из которой была установлена ОС в ostree [подробнее об установке](alt_on_ostree.md), создать новый коммит. Для этого внести изменения в каталог root и вызвать ostree commit без параметра --parent=none. Указать версию. Например так:
|
||||||
```
|
```
|
||||||
touch root/usr/bin/privet
|
touch root/usr/bin/privet
|
||||||
chmod a+x root/usr/bin/privet
|
chmod a+x root/usr/bin/privet
|
||||||
echo "echo Privet" > root/usr/bin/privet
|
echo "echo Privet" > root/usr/bin/privet
|
||||||
sudo ostree commit --repo=repo --tree=dir=root -b alt/x86_64/coreos/stable --owner-uid 0 --owner-gid 0 --no-xattrs --no-bindings --mode-ro-executables
|
sudo ostree commit --repo=repo --tree=dir=root -b alt/x86_64/coreos/stable --owner-uid 0 --owner-gid 0 --no-xattrs --no-bindings --mode-ro-executables --add-metadata-string=version=sisyphus.`date +%Y%m%d`.0.1
|
||||||
```
|
```
|
||||||
|
|
||||||
Результат можно будет проверить следующими командами:
|
Результат можно будет проверить следующими командами:
|
||||||
```
|
```
|
||||||
[keremet@host-15 ~]$ ostree log --repo=repo alt/x86_64/coreos/stable
|
[keremet@host-15 ~]$ ostree log --repo=repo alt/x86_64/coreos/stable
|
||||||
commit 0adc3481f84764b4139a2e3ebd6cb351e15d69208e526327e5d3c8fddf1cafd9
|
commit ef1232b040e3f4d812c61c0e6b5faac4dfafcee4aa3efbc5399a39b555ffdcd9
|
||||||
Parent: 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2
|
Parent: 6a20a507690294aa2787257a22a3830ee7c19195136924b84ee3fb5de2c6774e
|
||||||
ContentChecksum: e2f5cc4672915f5dcaf5d315a0678237deacf9824ae96f0c430e170cf6887940
|
ContentChecksum: 23c3a3fdb9e98fcb05893d04f3df6e2af65e191bb890d0db174986e3df1a84e8
|
||||||
Date: 2021-07-19 16:19:57 +0000
|
Date: 2021-07-22 10:09:21 +0000
|
||||||
(no subject)
|
(no subject)
|
||||||
|
|
||||||
commit 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2
|
commit 6a20a507690294aa2787257a22a3830ee7c19195136924b84ee3fb5de2c6774e
|
||||||
ContentChecksum: a2e31383521e4025c6341878cf4362b8973529102ece596e2f675577a8412301
|
ContentChecksum: 2e61f9a95768f3124ddca76676c66582172067748030311ac742f9db9dcc8822
|
||||||
Date: 2021-07-19 16:13:12 +0000
|
Date: 2021-07-22 09:57:43 +0000
|
||||||
(no subject)
|
(no subject)
|
||||||
|
|
||||||
[keremet@host-15 ~]$ ostree diff --repo=repo 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2 0adc3481f84764b4139a2e3ebd6cb351e15d69208e526327e5d3c8fddf1cafd9
|
[keremet@host-15 ~]$ ostree diff --repo=repo 6a20a507690294aa2787257a22a3830ee7c19195136924b84ee3fb5de2c6774e ef1232b040e3f4d812c61c0e6b5faac4dfafcee4aa3efbc5399a39b555ffdcd9
|
||||||
A /usr/bin/privet
|
A /usr/bin/privet
|
||||||
[keremet@host-15 ~]$
|
[keremet@host-15 ~]$
|
||||||
```
|
```
|
||||||
@ -38,7 +38,7 @@ sudo ostree trivial-httpd -P 80 repo
|
|||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
На клиенте надо подключить удаленный репозиторий ostree
|
На клиенте надо подключить удаленный репозиторий ostree. При создании коммита можно указывать --gpg-sign и тогда будет проверка подписи
|
||||||
```
|
```
|
||||||
ostree remote add --no-gpg-verify alt http://192.168.2.126
|
ostree remote add --no-gpg-verify alt http://192.168.2.126
|
||||||
```
|
```
|
||||||
@ -50,23 +50,19 @@ ostree remote show-url alt
|
|||||||
ostree remote refs alt
|
ostree remote refs alt
|
||||||
```
|
```
|
||||||
|
|
||||||
Отображение состояния и обновление. В данном примере показано, что для обновления требуется указывать переменную окружения OSTREE_GRUB2_EXEC, необходимость чего хорошо бы устранить
|
Отображение состояния и обновление.
|
||||||
```
|
```
|
||||||
[root@localhost ~]# ostree admin status
|
[root@localhost ~]# ostree admin status
|
||||||
* alt-coreos 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2.0
|
* alt-coreos 6a20a507690294aa2787257a22a3830ee7c19195136924b84ee3fb5de2c6774e.0
|
||||||
origin refspec: alt:alt/x86_64/coreos/stable
|
origin refspec: alt:alt/x86_64/coreos/stable
|
||||||
[root@localhost ~]# ostree admin upgrade
|
[root@localhost ~]# ostree admin upgrade
|
||||||
6 metadata, 1 content objects fetched; 20 KiB transferred in 0 seconds; 12 bytes content written
|
6 metadata, 1 content objects fetched; 20 KiB transferred in 0 seconds; 12 bytes content written
|
||||||
Copying /etc changes: 3 modified, 0 removed, 13 added
|
Copying /etc changes: 3 modified, 0 removed, 13 added
|
||||||
error: Bootloader write config: Failed to execute child process ?no? (No such file or directory)
|
Transaction complete; bootconfig swap: yes; bootversion: boot.0.1, deployment count change: 1
|
||||||
[root@localhost ~]# OSTREE_GRUB2_EXEC=/usr/sbin/grub-mkconfig ostree admin upgrade
|
|
||||||
2 metadata, 0 content objects fetched; 0 bytes content written
|
|
||||||
Copying /etc changes: 3 modified, 0 removed, 13 added
|
|
||||||
Transaction complete; bootconfig swap: yes; bootversion: boot.0.0, deployment count change: 1
|
|
||||||
[root@localhost ~]# ostree admin status
|
[root@localhost ~]# ostree admin status
|
||||||
alt-coreos 0adc3481f84764b4139a2e3ebd6cb351e15d69208e526327e5d3c8fddf1cafd9.1 (pending)
|
alt-coreos ef1232b040e3f4d812c61c0e6b5faac4dfafcee4aa3efbc5399a39b555ffdcd9.0 (pending)
|
||||||
origin refspec: alt:alt/x86_64/coreos/stable
|
origin refspec: alt:alt/x86_64/coreos/stable
|
||||||
* alt-coreos 4e1b4eb4512bd032b91a3a65c396d853e3a94033e07f75ed2f0faba23b7a77a2.0
|
* alt-coreos 6a20a507690294aa2787257a22a3830ee7c19195136924b84ee3fb5de2c6774e.0
|
||||||
origin refspec: alt:alt/x86_64/coreos/stable
|
origin refspec: alt:alt/x86_64/coreos/stable
|
||||||
[root@localhost ~]#
|
[root@localhost ~]#
|
||||||
```
|
```
|
||||||
|
Loading…
Reference in New Issue
Block a user