#### Необходимо около 50 Гб дискового пространства (зависит от размера вашего корня + home)
# Скачайте с официального сайта РОСА подходящий образ
# Установка инструментов:
Код: Выделить всё
sudo dnf install -y bsdtar xorriso pykickstart squashfs-tools pv rsync e2fsprogs zstd anaconda
cp /usr/share/applications/anaconda-rosa.desktop ~/"Рабочий стол"/
chmod +x ~/"Рабочий стол"/anaconda-rosa.desktop# Создаём рабочую папку и распаковываем скачанный ISO:
Код: Выделить всё
mkdir -p ~/work/iso
pv ~/Загрузки/ROSA.FRESH.GNOME.13.3.x86_64.iso | sudo bsdtar -xf - -C ~/work/isoКод: Выделить всё
rm -f ~/Загрузки/ROSA.FRESH.GNOME.13.3.x86_64.isoКод: Выделить всё
mkdir ~/work/squashfs
sudo unsquashfs -d ~/work/squashfs ~/work/iso/LiveOS/squashfs.img# Пересоздаём rootsf.img с возможностью записи (в exclude я исключил папку timeshift, рабочую папку work и содержимое папки Загрузки, в count - размер корня с запасом) (можно создать разреженный образ на 20 ГБ - физически место не занимается - dd if=/dev/zero of=~/work/fresh_rootfs.img bs=1M seek=20000 count=0):
Код: Выделить всё
sudo dd if=/dev/zero of=~/work/fresh_rootfs.img bs=1G count=20 status=progress
sudo mkfs.ext4 -F ~/work/fresh_rootfs.img
mkdir ~/work/fresh_mount
sudo mount -o loop ~/work/fresh_rootfs.img ~/work/fresh_mount
sudo rsync -aAXH --numeric-ids --info=progress2 \
--exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found","/timeshift","$HOME/work","$HOME/Загрузки/*"} \
/. ~/work/fresh_mount/.Код: Выделить всё
sudo rm -f ~/work/fresh_mount/etc/resolv.conf
sudo truncate -s 0 ~/work/fresh_mount/etc/fstabКод: Выделить всё
sudo umount ~/work/fresh_mountКод: Выделить всё
sudo mv ~/work/fresh_rootfs.img ~/work/squashfs/LiveOS/rootfs.imgКод: Выделить всё
sudo losetup --find --show ~/work/squashfs/LiveOS/rootfs.img
sudo tune2fs -L "_ROSA_13_LIVE_x" /dev/loop0
sudo losetup -d /dev/loop0Код: Выделить всё
sudo rm -f ~/work/iso/LiveOS/squashfs.img
sudo mksquashfs ~/work/squashfs/ ~/work/iso/LiveOS/squashfs.img -comp zstd -b 1Mcd ~/work/iso/LiveOS/
sudo md5sum rootfs.img > rootfs.img.md5
sudo sha256sum rootfs.img > rootfs.img.sha256
#### Если файл называется .checksum:
#### sudo sha256sum rootfs.img > rootfs.img.checksum
# В файле ~/work/iso/EFI/BOOT/menuentry.cfg найдите все упоминания ROSA_13_GNOME_x86_64_60959 и замените их на ROSA_13_GNOME_Custom
Код: Выделить всё
sudo gedit ~/work/iso/EFI/BOOT/menuentry.cfgКод: Выделить всё
cd ~/work/iso
xorrisofs \
-output ~/ROSA_13_GNOME_Custom.iso \
-iso-level 3 \
-no-emul-boot \
-b \
eltorito.img \
-no-emul-boot \
-boot-load-size \
4 \
-boot-info-table \
-partition_offset \
16 \
--boot-catalog-hide \
--grub2-mbr \
/usr/lib/grub/i386-pc/boot_hybrid.img \
--grub2-boot-info \
-iso_mbr_part_type \
0x83 \
-append_partition \
2 \
0xef \
./efi.img \
-appended_part_as_gpt \
-eltorito-alt-boot \
-e \
/efi.img \
-no-emul-boot \
-no-pad \
-rational-rock \
-joliet \
-volid \
ROSA_13_GNOME_Custom \
.# Готовый ISO появится в директории ~/
#### Удалите рабочую папку и анаконду:
Код: Выделить всё
sudo rm -rf ~/work
sudo dnf remove -y anaconda
rm -f ~/"Рабочий стол"/anaconda-rosa.desktop