Автоматическая настройка Live-USB Ubuntu
В течение последнего месяца часто приходится работать, загружая операционную систему Ubuntu 17.10 с USB-флешки в режиме Live-USB, что делает возможным использование рабочей станции, без установленной операционной системы. Такой вариант подходит для работы с необходимым набором программ: текстовый редактор gedit, веб-браузер FireFox, клиент удалённого доступа к рабочему столу Remmina, файловый менеджер GNOME Files для работы с файлами, включая файлы на удалённых серверах, доступных по протоколам FTP, FTPS и WebDAV. Главный минус такого решения - рутинная настройка после каждой загрузки. Здесь поможет автоматизация.
Для этого мною написан Shell скрипт, выполняющий настройку операционной системы и прикладных программ в соответствие с потребностями и предпочтениями. Приведу часть универсальных настроек с комментариями, которые будут полезны другим пользователям Live-USB Ubuntu.
#!/bin/sh
# Установка временной зоны
# Посмотреть доступные временные зоны: timedatectl list-timezones
timedatectl set-timezone Europe/Moscow
# Установка локали
# Посмотреть доступные локали: locale -a
# sudo update-locale LANG=ru_RU.UTF-8 - установит значение локали для всех LC_*-переменных, которые не установлены явно
# Альтернатива - явная установка значений LC_*-переменных, может быть выполнена в одной строке
sudo update-locale LC_NUMERIC="ru_RU.UTF-8"
sudo update-locale LC_TIME="ru_RU.UTF-8"
sudo update-locale LC_MONETARY="ru_RU.UTF-8"
sudo update-locale LC_PAPER="ru_RU.UTF-8"
sudo update-locale LC_NAME="ru_RU.UTF-8"
sudo update-locale LC_ADDRESS="ru_RU.UTF-8"
sudo update-locale LC_TELEPHONE="ru_RU.UTF-8"
sudo update-locale LC_MEASUREMENT="ru_RU.UTF-8"
sudo update-locale LC_IDENTIFICATION="ru_RU.UTF-8"
# Установка уровня звука на 100%
amixer -D pulse sset Master 100%
# Настройка GNOME
# Переключение раскладки клавиатуры по Shift+Alt
gsettings set org.gnome.desktop.input-sources xkb-options "[]"
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us'), ('xkb', 'ru')]"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['<Shift>Alt_L']"
gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['<Alt>Shift_L']"
# Вывод секунд в часах на панеле
gsettings set org.gnome.desktop.interface clock-show-seconds true
# Установка времени отсутствия активности до отключения монитора в секундах
# Значение 0 - монитор никогда не отключается
gsettings set org.gnome.desktop.session idle-delay 900
# Установка обоев рабочего стола из стандартных
gsettings set org.gnome.desktop.background picture-uri file:///usr/share/backgrounds/Lily_of_the_Valley_by_Robert_Slotte.jpg
# Настройка gedit
# Посмотреть все доступные настройки для gedit: gsettings list-recursively | grep gedit
gsettings set org.gnome.gedit.preferences.editor display-line-numbers true
gsettings set org.gnome.gedit.preferences.editor tabs-size 2
gsettings set org.gnome.gedit.preferences.editor auto-indent true
gsettings set org.gnome.gedit.preferences.editor scheme 'oblivion'
gsettings set org.gnome.gedit.preferences.editor bracket-matching true
gsettings set org.gnome.gedit.preferences.editor display-overview-map true
gsettings set org.gnome.gedit.preferences.editor insert-spaces true
# Настройка FireFox
# Используется файл user.js
firefox -CreateProfile $USER
FIREFOXPROFILE=`cat "$HOME/.mozilla/firefox/profiles.ini" | sed -n -e 's/^.*Path=//p' | head -n 1`
FIREFOXUSERJS="$HOME/.mozilla/firefox/$FIREFOXPROFILE/user.js"
# Следующие настройки FireFox приведены для примера
# На странице about:config можно увидеть все доступные настройки браузера
echo 'user_pref("browser.cache.disk.capacity", 25600);' >> $FIREFOXUSERJS
echo 'user_pref("network.proxy.autoconfig_url", "https://antizapret.prostovpn.org/proxy.pac");' >> $FIREFOXUSERJS
echo 'user_pref("network.proxy.type", 2);' >> $FIREFOXUSERJS
# Добавление записей в файл hosts
# Следующие записи приведены для примера
sudo sh -c 'printf "195.82.146.120 bt.t-ru.org\n195.82.146.121 bt2.t-ru.org\n195.82.146.122 bt3.t-ru.org\n195.82.146.123 bt4.t-ru.org\n" >> /etc/hosts'
# Завершение сессии пользователя
gnome-session-quit --logout --no-prompt
После завершение работы скрипта прекращается текущая сессия пользователя, поэтому требуется войти в систему снова. Если потребность в установке локали отсутствует, можно обойтись без этого, что дополнительно сократит время между загрузкой операционной системы и началом комфортной работы в привычно настроенной среде.