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

Установка и настройка системы Debian

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

Сообщение nezabudka » 30 май 2015, 14:46

Моей системе уже около 2 лет за это время она успела получить имя jessie
и попить у меня не мало крови. Я решила рядышком установить новую jessie
и посмотреть на нее без собравшегося мусора. Задумано сделано. Я посмотрела
на таблицу разделов своего жесткого диска и мне очень не понравилось что steamOS
распологается аж на четырех разделах. Я его установила ради интереса к игре Gun
Dissansembly и все. Поэтому я собрала все в кучу и перенесла все веточки в корень,
отредактировала fstab и поправила загрузчик. Теперь у меня освободилось место на
/dev/sda1 размером под 50 гигов. То что надо.
При установки систем я обычно пользовалась вот этим руководством
http://blog.kourim.net/installing-debian-on-btrfs-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
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 613
Фото: 180
Стаж: 3 года 3 месяца 29 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

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

Спонсор

Спонсор
 

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

Сообщение Sunderland93 » 30 май 2015, 15:53

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

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

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

Сообщение nezabudka » 30 май 2015, 15:56

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
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 613
Фото: 180
Стаж: 3 года 3 месяца 29 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 145 раз.

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

Сообщение tupoll » 30 май 2015, 16:23

Sunderland93 писал(а):

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

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

Арчеводы бывшими не бывают,мне например хватает арча в виде бсд,есть файлик такой PKGBUILD -ничто не мешает выбросить ненужные пакеты можно и просто их не брать.По тем причинам же выбирая для себя лучшее-funtoo linux переход с gentoo занял ночную пересборку системы всего-то.
Правильный линукс-BSD.
Аватар пользователя
tupoll
Уважаемый участник
Уважаемый участник
 
Сообщений: 235
Фото: 3
Стаж: 3 года 6 месяцев 29 дней
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 44 раз.

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

Сообщение tupoll » 30 май 2015, 16:30

nezabudka писал(а):

Моей системе уже около 2 лет за это время она успела получить имя jessie
и попить у меня не мало крови.
Стучите если накосячила.

И не два вовсе-один с горем пополам -не стоит этого стесняться,так продвинуться за год-учитесь мужики :give_rose:
Правильный линукс-BSD.
Аватар пользователя
tupoll
Уважаемый участник
Уважаемый участник
 
Сообщений: 235
Фото: 3
Стаж: 3 года 6 месяцев 29 дней
Откуда: Vladivostok
Благодарил (а): 31 раз.
Поблагодарили: 44 раз.


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

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

cron