Скрипт:
#!/bin/sh
A="$@"
echo -e "\n\n\n\tinit options: $A\n\n\t\tMoving / to RAM...\n"
bin/mount -t tmpfs tmpfs =
bin/tar -cp --acls --same-owner --no-seek --selinux --xattrs --exclude={=/*,run/*,tmp/*} .|bin/tar --acls --same-owner --selinux --xattrs -pSxC =
cd =
bin/sed -i -r 's/^\S+\s+\/\s/tmpfs \/ tmpfs defaults 0 0/' etc/fstab
bin/sed -i -r 's/^\/dev\/root\/s+\/\s+ext4/d' etc/mtab
sbin/pivot_root . =
cd /
exec bin/chroot . bin/sh -c "bin/umount =;exec sbin/init \"$A\""
init=/i
.
Мой корень размером 2G с ноутбучного SATA копируется ровно две минуты.
Пробовал rsync'ом с ключами -ADEgHhIloprSstWX
— 4 м. 50 с.
Может кто-то подскажет что-то по ускорению процесса загрузки.
UPD:
Похоже моя проблема решилась. Просто убрал /dev, /sys, /proc, /run из exclude= tar'а.
Как проверить правильность примонтирования этих директорий к новому / в tmpfs?
Почему вообще это убирание их из exclude'а изменило ситуацию? Раньше не показывался ход загрузки OpenRC.