Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

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

Установка и настройка системы Debian
Ответить
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

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

Сообщение 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
Стучите если накосячила.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Sunderland93

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

Сообщение Sunderland93 »

Скрипт полностью работоспособен?

P.S. насчёт бывших арчеводов - им debootstrap лучше подойдёт) Система получается минимальнее того, что ставит арчевский инсталятор.
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

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

Сообщение nezabudka »

Sunderland93 писал(а):Скрипт полностью работоспособен?

P.S. насчёт бывших арчеводов - им debootstrap лучше подойдёт) Система получается минимальнее того, что ставит арчевский инсталятор.
Через bootstrap можно было бы даже упростить скрипт, должна отпасть необходимость во многом и во временных файлах которые
я использовала что бы сжать систему в lzo
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

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

Сообщение tupoll »

Sunderland93 писал(а):Скрипт полностью работоспособен?

P.S. насчёт бывших арчеводов - им debootstrap лучше подойдёт) Система получается минимальнее того, что ставит арчевский инсталятор.
Арчеводы бывшими не бывают,мне например хватает арча в виде бсд,есть файлик такой PKGBUILD -ничто не мешает выбросить ненужные пакеты можно и просто их не брать.По тем причинам же выбирая для себя лучшее-funtoo linux переход с gentoo занял ночную пересборку системы всего-то.
Правильный линукс-BSD.
Аватара пользователя
tupoll
Уважаемый участник
Уважаемый участник
Сообщения: 231
Зарегистрирован: 19 янв 2015, 07:30
Откуда: Vladivostok

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

Сообщение tupoll »

nezabudka писал(а):Моей системе уже около 2 лет за это время она успела получить имя jessie
и попить у меня не мало крови.
Стучите если накосячила.
И не два вовсе-один с горем пополам -не стоит этого стесняться,так продвинуться за год-учитесь мужики :give_rose:
Правильный линукс-BSD.
Ответить

Вернуться в «Установка и обновление системы»