Страница 1 из 1

Скрипт установки на субтом btrfs

Добавлено: 30 май 2015, 14:46
nezabudka
Моей системе уже около 2 лет за это время она успела получить имя jessie
и попить у меня не мало крови. Я решила рядышком установить новую jessie
и посмотреть на нее без собравшегося мусора. Задумано сделано. Я посмотрела
на таблицу разделов своего жесткого диска и мне очень не понравилось что steamOS
распологается аж на четырех разделах. Я его установила ради интереса к игре Gun
Dissansembly и все. Поэтому я собрала все в кучу и перенесла все веточки в корень,
отредактировала fstab и поправила загрузчик. Теперь у меня освободилось место на
/dev/sda1 размером под 50 гигов. То что надо.
При установки систем я обычно пользовалась вот этим руководством
http://blog.kourim.net/installing-debia ... -subvolume
За что создателю этого труда большое прибольшое спасибо потому как внятной утановки на бтр
в тот момент на русском я не нашла.
При установки в дебиан не предусмотрено создание субтомов как в убунте
и поэтому приходится изворачиваться кому как удобней.
Но на этот раз я захотела перестраховаться на будущее и создать
скрипт который поможет мне все это проделать на автомате в дальнейшем.
Дебиан я установила в обычном режиме на мой освободившийся раздел диска
без установки загрузчика. Это по тому что он окажется не работоспособным при
преносе сисемы на субтома. Выбрала минимальную установку потому как пользоваться
tasksel знают все или возможно кто из бывших арчеводов захочет установить все сверху
самостоятельно по кирпичику. При установке выбрала только один раздел и даже без свопа,
что делаю всегда и везде, потому что игроман из меня плохой, а в четырех гиктарах памяти
могу и заблудится на своем любимом терминале.
Так на чем это я остановилась? Ну в общем установила я систему зашла на свою старушку jessie
и написала вот такой скриптик. Кому интересны такие ребусы, прошу. Это вариант скрипта
с lzo сжатием файлов записаных на жесткий диск после установки системы

Код: Выделить всё

#!/usr/bin/env bash
#name install_deb_on_subvol.sh автоматизация установки
#Запускается с единственным параметром [1-9] номером нужного раздела одной цифрой
if [[ "$1" == [1-9] ]]; then
	part="/dev/sda${1}"
else
	echo "Параметр должен состоять из одной цифры обозначающей номер раздела"
	exit 1
fi
dirmount="/mnt/"
mount -t btrfs $part $dirmount
btrfs subvolume create ${dirmount}\@
number="$(btrfs subvolume list $dirmount | grep -o '2[0-9][0-9]')"
for i in $(ls $dirmount | egrep -v '@|home')
do
   mv ${dirmount}$i ${dirmount}\@/
done
btrfs subvolume create ${dirmount}\@home
mv ${dirmount}home/* ${dirmount}\@home/
rmdir ${dirmount}home
mkdir ${dirmount}\@/home
btrfs subvolume set-default $number $dirmount
echo "Перенос системы на субтома закончен"
#Изменение fstab
#У меня только один раздел в файле даже без файла подкачки. В другом
#варианте нужно делать небольшие изменения в коде
cp ${dirmount}\@/etc/fstab{,.$(date +%F_$X)}
sed -ri 's/(^UUID[^ ]* \/).*/\1\t\tbtrfs\tnoatime,nodiratime,autodefrag,compress=lzo,subvol=@\t0\t0/' fstab
sed -ri '/UUID/{1n;p};s/@/@home/' ${dirmount}\@/etc/fstab
sed -ri '/.*subvol=@home.*/s/ \// \/home/' ${dirmount}\@/etc/fstab
echo "Изменения в fstab внесены"
cd
umount /mnt	#отмонтируемся из уровня 5
exit 0
А этот вариант предусматривает сжатие даже всех файлов в устанавливаемой системе

Код: Выделить всё

#!/usr/bin/env bash
#name install_deb_on_subvol.sh автоматизация установки на субтома btrfs
#Запускается с единственным параметром [1-9] номером нужного раздела одной цифрой
if [[ "$1" == [1-9] ]]; then
	part="/dev/sda${1}"
else
	echo "Параметр должен состоять из одной цифры обозначающей номер раздела"
	exit 1
fi
tempdir=$(mktemp -d /tmp/dir.XXXX)
dirmount="/mnt/"
cd $dirmount
mount -t btrfs -o compress-force=lzo $part $dirmount
rsync -av $dirmount $tempdir
btrfs subvolume create ${dirmount}\@
number="$(btrfs subvolume list $dirmount | grep -o '2[0-9][0-9]')"
rsync -av ${tempdir}/ ${dirmount}/\@ --exclude=home
btrfs subvolume create ${dirmount}\@home
rsync -av ${tempdir}/home/ ${dirmount}/\@home
mkdir ${dirmount}\@/home
for i in $(ls ${dirmount} | egrep -v '@|@home')
do
    rm -r ${dirmount}$i
done
btrfs subvolume set-default $number $dirmount
echo "Перенос системы на субтома закончен"
#Изменение fstab
#У меня только один раздел в файле даже без файла подкачки. В другом
#варианте нужно делать небольшие изменения в коде
cp ${dirmount}\@/etc/fstab{,.$(date +%F_%X)}
sed -ri 's/(^UUID[^ ]* \/).*/\1\t\tbtrfs\tnoatime,nodiratime,autodefrag,compress=lzo,subvol=@\t0\t0/' ${dirmount}\@/etc/fstab
sed -ri '/UUID/{1n;p};s/@/@home/' ${dirmount}\@/etc/fstab
sed -ri '/.*subvol=@home.*/s/ \// \/home/' ${dirmount}\@/etc/fstab
echo "Изменения в fstab внесены"
cd 
umount /mnt
exit 0
Кому не интересны просто скопируйте нужный скрипт.
Делаю chmod 755 и
так как номер мого раздела со свежеустановленой системой /dev/sda1
то и параметр для этого скрипта при запуске я ставлю единичку

Код: Выделить всё

./install_deb_on_subvol.sh 1
Слеующий код для обеих скриптов по устанке загрузчика необходимо ввести в ручную

Код: Выделить всё

mount /dev/sda? /mnt
mount --bind /dev /mnt/dev
mount --bind /proc /mnt/proc
mount --bind /sys /mnt/sys
chroot /mnt /bin/bash
update-grub
grub-install /dev/sda
exit
umount /mnt/dev
umount /mnt/proc
umount /mnt/sys
umount /mnt
После первой загрузки системы обязательно сделайте update-grub
Стучите если накосячила.

Re: Скрипт установки на субтом btrfs

Добавлено: 30 май 2015, 15:53
Sunderland93
Скрипт полностью работоспособен?

P.S. насчёт бывших арчеводов - им debootstrap лучше подойдёт) Система получается минимальнее того, что ставит арчевский инсталятор.

Re: Скрипт установки на субтом btrfs

Добавлено: 30 май 2015, 15:56
nezabudka
Sunderland93 писал(а):Скрипт полностью работоспособен?

P.S. насчёт бывших арчеводов - им debootstrap лучше подойдёт) Система получается минимальнее того, что ставит арчевский инсталятор.
Через bootstrap можно было бы даже упростить скрипт, должна отпасть необходимость во многом и во временных файлах которые
я использовала что бы сжать систему в lzo

Re: Скрипт установки на субтом btrfs

Добавлено: 30 май 2015, 16:23
tupoll
Sunderland93 писал(а):Скрипт полностью работоспособен?

P.S. насчёт бывших арчеводов - им debootstrap лучше подойдёт) Система получается минимальнее того, что ставит арчевский инсталятор.
Арчеводы бывшими не бывают,мне например хватает арча в виде бсд,есть файлик такой PKGBUILD -ничто не мешает выбросить ненужные пакеты можно и просто их не брать.По тем причинам же выбирая для себя лучшее-funtoo linux переход с gentoo занял ночную пересборку системы всего-то.

Re: Скрипт установки на субтом btrfs

Добавлено: 30 май 2015, 16:30
tupoll
nezabudka писал(а):Моей системе уже около 2 лет за это время она успела получить имя jessie
и попить у меня не мало крови.
Стучите если накосячила.
И не два вовсе-один с горем пополам -не стоит этого стесняться,так продвинуться за год-учитесь мужики :give_rose: