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