Введение
Итак, на текущий момент у Вас при включении компьютера появляется меню загрузчика GRUB, в котором первым пунктом идет операционная система Linux Ubuntu (или другой дистрибутив Linux, в моем случае именно Ubuntu). Выглядит это меню следующим образом.
Где,
- Ubuntu – это как раз операционная система Linux Ubuntu;
- Windows Boot Manager (на /dev/sda2) – это Windows 10.
Если ничего не выбрать, то через несколько секунд, по умолчанию, будет загружаться Ubuntu.
У нас стоит задача изменить порядок загрузки операционных систем таким образом, чтобы первым пунктом стояла Windows 10 и, соответственно, загружалась также первой. Дополнительно, для удобства и ясности, мы хотим присвоить пункту Windows Boot Manager более удачное имя, например – Windows 10.
Все этом можно реализовать с помощью одной программы – Grub Customizer, которую можно использовать в Linux Ubuntu.
Таким образом, сейчас я покажу, как установить Grub Customizer в Linux Ubuntu, и изменить порядок загрузки операционных систем в загрузчике Grub, используя эту программу.
KDE через Kubuntu
Проект KDE в настоящее время переходит на свою последнюю версию, Plasma 5, которая является версией Kubuntu 15.10, которая демонстрируется на видео ниже. Процесс управления запуском приложений в KDE идентичен по функциональности как в Plasma 5, так и в KDE4, поэтому видео демонстрирует только Plasma 5.
https://youtube.com/watch?v=JUe6-0ey39c
В Панели запуска приложений перейдите к компьютер раздел и открыть Настройки системы приложение. Запуск и завершение работы, в разделе Рабочая область, где вы будете управлять записями. В Автоматический старт, выбран по умолчанию, нажмите Добавить программу для прокрутки списка приложений по категориям или для поиска приложения. Нажатие кнопки Хорошо чтобы продолжить, вы получите краткое изложение того, что вы собираетесь добавить, нажмите Хорошо в этом окне, чтобы завершить процесс. Plasma также позволяет автоматически запускать пользовательские сценарии, чтобы сделать это Добавить скрипт, щелкните по квадратной области и перейдите к вашему сценарию.
Автозагрузка на уровне ядра
Автозагрузка на уровне ядра вряд ли будет вам очень полезной для повседневного применения, но я решил о ней упомянуть, поскольку такая возможность есть. С помощью параметра ядра init вы можете указать какую программу стоит запускать сразу после завершения инициализации ядра. Например, вы можете загрузить оболочку Bash вместо Systemd. Для этого достаточно подправить строку запуска ядра в конфигурационном файле Grub или во время запуска. Добавьте в конец параметр init:
$ sudo vi /boot/grub2/grub.cfg
linux /vmlinuz-4.8.0-22-generic root=/dev/mapper/systems-ubuntu ro quiet init=/bin/bash
Но, обычно, удобнее изменить это значение временно, в меню Grub. Читайте подробнее об этом в статье параметры ядра Linux . Так не выполняется автозагрузка программы linux, но, тем не менее, иногда может быть полезно.
Автозапуска скриптов и сервисов с помощью rc.local
Для запуска различных скриптов при загрузке Linux чаще всего используется rc.local.
Но помимо скриптов, через rc.local так же можно и запускать сервисы, даже те, которые запускаются через systemd. Не могу ответить на вопрос, для чего использовать в таком случае rc.local, если есть systemd, но пару примеров я приведу.
Начнем с того, что файл /etc/rc.local должен быть исполняемым:
Rc.local должен быть добавлен в автозагрузку systemd:
И на примере того же nginx, мы можем добавить в rc.local команду запуска веб-сервера:
Но я редко использую rc.local для запуска сервисов. Чаще rc.local используется, когда нужно запустить скрипт, либо выполнить разово какую-то команду.
К примеру, я создал скрипт /root/test.sh который выполняет некоторые действия, и хочу запустить его сразу после запуска системы. Добавляем в файл rc.local строку:
Начиная с CentOS 7, разработчики указывают на то, что rc.local устаревший демон и осуществлять автозапуск скриптов или сервисов через него, это прошлый век. Но пока он работает, я пользуюсь им, так как он очень прост в эксплуатации.
Автозагрузка в системе инициализации
Чаще всего, когда говорится автозагрузка Linux, подразумевается именно автозагрузка сервисов с помощью системы инициализации. В systemd очень продвинутая система управления службами. Здесь поддерживается разрешение зависимостей, параллельный запуск, отсрочка запуска и перезапуск при ошибке. В терминологии Systemd все запускаемые программы представлены файлами юнитов, в каждом юните описаны параметры программы, ее исполняемый файл, а также дополнительные требования к запуску.
Для добавления или удаления служб из автозапуска используется команда systemctl. Чтобы добавить службу в автозапуск выполните:
А чтобы отключить ее автозапуск linux:
Например, если вы хотите добавить в автозагрузку Apache, то нужно выполнить:
Также вы можете проверить добавлена ли уже служба в автозагрузку:
Если вы не знаете точное имя файла сервиса, но знаете его первую букву, то можно использовать автодополнение, как и в любом другом месте терминала с помощью кнопки Tab:
Также вы можете посмотреть все сервисы, которые были добавлены в автозагрузку с помощью команды:
Загрузка с помощью rc.local после загрузки системы
Необходимо создать скрипт в любой директории, где вам удобно и сделать его исполняемым как в первом способе.
Затем подправить файл rc.local любым редактором текста, например nano:
Изначально скрипт rc.local пустой и содержит только:
Пропишите полный путь скрипта перед строчкой exit 0 и сохраните файл.
Скрипт выполниться после загрузки системы .
Однако в последних версиях Ubuntu (например в Ubuntu 18.04) в директории /etc нет файла rc.local и его необходимо создать и сделать исполняемым:
Все, скрипт должен автоматически запускаться.
Это моя первая статья, если есть замечания прошу в комментарии.
Создание дополнительного меню загрузки
Суть в том, что вместо уже знакомого «grub.cfg» можно загрузить свой файл настройки загрузочного меню со своей конфигурацией. Это позволяет создать дополнительное меню с другими пунктами, настройками, оформлением и т.д. Итак, создадим наш новый файл конфигурации. Создавать с нуля не будем, а скопируем «grub.cfg», дав новое имя:
sudo cp /boot/grub/{grub,custom}.cfg
Поскольку файл скопируется с правами 444, выставим ему права на запись:
sudo chmod 744 /boot/grub/custom.cfg
Теперь открываем его в любимом текстовом редакторе и изменяем:
sudo gedit /boot/grub/custom.cfg
Если вы в достаточной мере знаете структуру «grub.cfg» и понимаете, какие строки что делают, можно значительно сократить свой файл, убрав лишнее и привести его к более удобочитаемому виду.
- задаем пункт меню по умолчанию, указав или его номер или точное название.
-
здесь задается разрешение экрана в привычном формате WxH. Можно также указать глубину цвета, например «1024x768x32». можно указать несколько вариантов, при этом если первый не сможет быть установлен, будет загружен второй, если и он не сработает — третий и т.д. Например:
set gfxmode=1024x768x32,1024x768x24,1024x768
-
Теперь зададим время отображения меню, для этого ищем строку , и устанавливаем значение -1 для отключения таймера.
Для задания фонового изображения найдем строку с (подразумевается, что в вашем «grub.cfg» используется фоновое изображение. Если нет — смотрите пример файла в конце раздела). После команды прописан путь к файлу картинки, поменяйте его на нужный файл.
Обратите внимание, что разрешение картинки должно соответствовать заданному выше разрешению экрана!
Строкой ниже мы можем задать цвета текста. Изменяются они так же, как и в »/etc/grub.d/05_debian_theme« (см. Настройка внешнего вида загрузчика GRUB). Можно проделать один интересный трюк: уберите строки с и теперь настройка будет такой:
- задает цвет/фон текста сверху и снизу (версия grub и комментарии) и текста в консоли
- отвечает за цвет пунктов меню и фон прямоугольника, в котором они находятся
- задает цвет/фон выделенного пункта меню.
Закончив с настройкой, перейдем к пунктам меню, они идут ниже. Измените их, удалите ненужные и добавьте новые, пересортируйте на свой вкус.
Настроив свой файл, сохраните его Ctrl+Shift и закройте.
Теперь необходимо добавить дополнительное меню. Для этого в файле »/etc/grub.d/40_custom« добавим запись такого вида:
menuentry "Название меню"{ configfile /boot/grub/custom.cfg }
Если ваш путь к файлу отличается — исправьте его.
Если вы используете отдельный boot-раздел, путь будет таким: »/grub/custom.cfg«.
Также учтите, что «40_custom» должен заканчиваться пустой строкой!
Если вы хотите, чтобы ваше новое меню загружалось вместо стандартного «grub.cfg», установите новый пункт в качестве пункта по умолчанию, но перед этим проверьте новое меню на работоспособность.
Обновите свой «grub.cfg» выполнив команду:
sudo update-grub
Теперь пункт перехода в дополнительное меню появится в главном, для того чтобы выйти обратно в главное меню, достаточно нажать Esc
В качестве образца пример файла «custom.cfg» (файл урезан до необходимого минимума):
have_grubenv=true load_env ### выбранный пункт по умолчанию set default=0 ### таймаут меню set timeout=2 ### разрешение set gfxmode=800x600x32,800x600x24,800x600 insmod ext2 search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s insmod gfxterm insmod vbe if terminal_output gfxterm ; then true ; else terminal gfxterm; fi insmod png ### фоновое изображение background_image /usr/share/images/grub/yellow.png ### настройка цветов set color_normal=black/black set menu_color_normal=green/light-blue set menu_color_highlight=red/blue menuentry "9.10 @ 2.6.32" { search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro quiet splash initrd /boot/initrd.img-2.6.32-020632-generic } menuentry "9.10 @ 2.6.32 (recovery)" { search -u 0e717c2a-24bd-4abe-acfe-ecf98fc814f8 -s linux /boot/vmlinuz-2.6.32-020632-generic root=UUID=0e717c2a-24bd-4abe-acfe-ecf98fc814f8 ro single initrd /boot/initrd.img-2.6.32-020632-generic } menuentry "windooz"{ search -u AC9C75E59C75AA8A -s chainloader +1 }
Автозагрузка скриптов в Linux
Раньше было принято размещать все скрипты, которые запускаются по умолчанию в файле /etc/rc.local. Этот файл все еще существует, но это пережиток системы инициализации SysVinit и теперь он сохраняется только для совместимости. Скрипты же нужно загружать только с помощью Systemd.
Для этого достаточно создать простой юнит-файл и добавить его в автозагрузку, как любой другой сервис. Сначала создадим этот файл:
$ sudo vi /lib/systemd/system/runscript.service
Description=My Script Service
After=multi-user.target
Type=idle
ExecStart=/usr/bin/local/script.sh
WantedBy=multi-user.target
В секции Unit мы даем краткое описание нашему файлу и говорим с помощью опции After, что нужно запускать этот скрипт в многопользовательском режиме (multi-user). Секция Service самая важная, здесь мы указываем тип сервиса — idle, это значит, что нужно просто запустить и забыть, вести наблюдение нет необходимости, а затем в параметре ExecStart указываем полный путь к нашему скрипту.
Осталось выставить правильные права:
$ sudo chmod 644 /lib/systemd/system/runscript.service
Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт:
$ sudo systemctl daemon-reload
$ sudo systemctl enable myscript.service
После следующей перезагрузки этот скрипт будет запущен автоматически
Обратите внимание, что для каждого скрипта, который вы собираетесь запускать должны быть правильно выставлены права, а именно нужно установить флаг выполнения. Для этого используйте команду chmod:
$ sudo chmod u+x /usr/local/bin/script
В параметрах мы передаем утилите адрес файла скрипта. Исполняемость — это обязательный параметр для всех способов.
Автозагрузка сервисов в Ubuntu
Сервис в операционных системах семейства Unix — это программа, что выполняется в фоновом режиме и не имеет окон или других способов связи с пользователем. В этой статье мы не будем рассматривать особенностей строения и запуска сервисов, кому интересно можете посмотреть википедию. Автозагрузка сервисов в Ubuntu управляется системой инициализации Systemd. До недавнего времени в Ubuntu использовался UpStart, однако и этот дистрибутив не смог устоять перед натиском Systemd.
Список всех сервисов и их статус можно посмотреть с помощью утилиты systemctl, для этого наберите в терминале (Ctrl+Alt+T):
А чтобы посмотреть список сервисов, которые сейчас выполняются выполните:
Аналогичным образом можно посмотреть сервисы, которые уже добавлены в автозагрузку:
Добавить сервис в автозагрузку можно с помощью утилиты опции enable:
Удалить сервис из автозагрузки можно указав опцию disable:
Так как выполняются действия от суперпользователя система спросит пароль. Несмотря на то, что здесь рассматривается автозагрузка сервисов в Ubuntu, поскольку здесь используется systemd, все эти команды будут актуальны для всех дистрибутивов, использующих эту систему инициализации.
Установка скачанных пакетов из терминала
Кроме графической утилиты GDebi, установить скачанные из интернета пакеты в Ubuntu можно и простой командой в терминале. Для этого надо выполнить команду:
Например, если вы скачали пакет с VirtualBox с официального сайта, и скорее всего теперь он лежит в папке «Загрузки» в вашей домашней директории, то установить его из терминала можно так:
ٌК слову сказать, что здесь также работает автодополнение, поэтому можно только начать вводить имя файла с пакетом и нажать на Tab — оставшаяся часть имени файла допишется сама. Также dpkg поддерживает и шаблоны, то есть можно напиметь так:
Что очень удобно, если вы скачали программу, которая поставляется в виде множества пакетов (например многие игры или LibreOffice, скачанный с официального сайта) — можно просто сложить все пакеты в одну папку, а затем выполнить примерно такую команду:
(в этом примере будут установлены ВСЕ пакеты из папки «Загрузки»).
Автозагрузка приложений в Linux Mint 17
Сначала откройте меню приложений и наберите в поле поиска startup, А затем запустите программу «Приложения запускаемые по умолчанию» или «Startup Applications»:
В главном окне вы можете посмотреть какие программы уже добавлены в автозагрузку:
Чтобы добавить новое приложение нажмите кнопку «Добавить»:
Здесь у вас есть выбор, добавить приложение из меню или самому указать команду:
В варианте из меню выберите одно из доступных приложений и нажмите кнопку добавить:
Например, Gparted, и вот, автозагрузка в linux mint для Gparted уже настроена:
Но если программы нет в списке, как VLC, мы можем воспользоваться таким же диалогом, как в Ubuntu:
В открывшемся окне нужно ввести имя приложения, оно ни на что не влияет и нужно только чтобы вы знали зачем добавлен этот пункт в автозагрузку Linux Mint:
Дальше выберите команду приложения. Нужно указать полный путь к исполняемому файлу. Если помните — просто наберите в текстовом поле, но надежнее будет нажать кнопку Обзор и найти его в файловой системе.
Обычно исполняемые файлы хранятся в папке /bin или /usr/bin. После выбора нужного файла нажмите кнопку открыть:
Также если нужно здесь можно указать отсрочку запуска. Осталось нажать кнопку Добавить:
Все, теперь ваше приложение добавлено в автозагрузку Linux Mint 17 и будет стартовать при каждом запуске системы.
Защита от зацикливания на перезагрузке
Если загрузка ОС не закончилась успешно, или осуществлялась загрузка в режим восстановления, то при следующей загрузке — меню выбора GRUB будет выводится и ждать явного вмешательства оператора (так же, как если бы вы выставили GRUB_TIMEOUT=-1). При этом последующие аппаратные сбросы системы — не помогут проскочить меню.
Зачем это сделано
При загрузке в лог файлы пишется информация и размеры логов растут. В нормально загруженной систем работают сервисы, которые архивируют и подчищают логи. В нормально работающей системе постоянно пополнение лог-файлов не требует внимания со стороны пользователя.
Совсем иная ситуация при загрузке — никакие сервисы по очистке логов не работают (они запускаются позже) и, если, в процессе загрузки система свалится и начнет перезагружаться, то лог будет только расти. И расти он будет до тех пор пока будут повторятся перезагрузки, и будет хватать места на том разделе диска, где расположен каталог /var/log. А когда на разделе с /var/log место кончится то система зависнет уже наглухо и даже в режим восстановления ее будет не загрузить. Загрузится можно будет только с LiveCD/USB (с Live системы и надо будет лечить систему, первым делом руками зачистив логи).
Защита встроенная в GRUB не позволит системе попасть в столь тяжелое положение.
А что если…
Функция (как видно) — безусловно полезная, однако она может быть неудобной для без-клавиатурных станций — на них «зависшее» меню GRUB-а — это не преимущество, а некоторые сложности (без подключения клавиатуры такая станция, попавшая в меню GRUB, никогда не загрузится вообще).
А что если отключить?
Собственно сами случаи, когда циклится загрузка — не так и часты, если машина работает без графики то там вообще мало чему падать на этапе загрузки, да еще так, что бы система вышла на перезагрузку. Разве что совсем кривой прикладной софт встроенный в процесс загрузки…
Гораздо чаще загрузка прерывается из за внешних условий — например пропадает питание, или кто-то сбрасывает грубо систему.
Как это работает
Реализовано все достаточно просто — в скрипте /boot/grub/grub.cfg переменная окружения GRUB recordfail устанавливается в ходе каждой загрузки в 1.
Скрипт /etc/init.d/grub-common запускается на финальных этапах загрузки (линки с именем S99grub-common есть в /etc/rc2.d, /etc/rc3.d, … /etc/rc5.d). grub-common сбрасывает переменную recordfail в 0.
Если скрипт /etc/init.d/grub-common не отработает, то не сброшенное значение recordfail предотвращает автоматическую загрузку, меню GRUB появляется и потребуется явное интерактивное вмешательство со стороны оператора.
Для того, что бы убрать необходимость интерактивного вмешательства в процесс загрузки нужно установить переменную GRUB_RECORDFAIL_TIMEOUT в /etc/defaul/grub в то количество секунд, которые меню GRUB-а будет ждать ввода в случае когда recordfail=1.
Сохранить изменения и обновить GRUB (sudo update-grub).
Вы должны понимать, что проделанные изменения могут привести к довольно печальным последствиям, если все-таки у вас случится ситуация, при которой зациклится перезагрузка системы.
Финт с GRUB_RECORDFAIL_TIMEOUT может не сработать в некоторых (старых) версиях GRUB. Тогда нужно редактировать /etc/grub.d/00_header. Нужно найти функцию make_timeout (), которая выглядит примерно так:
make_timeout () { cat << EOF if ; then set timeout=-1 else set timeout=${2} fi EOF }
и заменить в ней строчку
set timeout=-1
на
set timeout=${GRUB_RECORDFAIL_TIMEOUT:--1}
После этого финт с GRUB_RECORDFAIL_TIMEOUT заработает. Нужно сохранить изменения и обновить GRUB (sudo update-grub).
Изменения в скрипте /etc/grub.d/00_header могут быть утеряны при обновлении пакета grub-common. Но в новых версиях GRUB переменная GRUB_RECORDFAIL_TIMEOUT уже внедрена (т.е. эти изменения уже сделаны в 00_header).
7.3.3. Третий этап, /boot/loader
Передача управления загрузчику является последним, третьим этапом в
процессе начальной загрузки, а сам загрузчик находится в файловой
системе, обычно как /boot/loader.
Загрузчик являет собой удобный в использовании инструмент для
настройки при помощи простого набора команд, управляемого более мощным
интерпретатором с более сложным набором команд.
7.3.3.1. Процесс работы загрузчика
Во время инициализации загрузчик пытается произвести поиск
консоли, дисков и определить, с какого диска он был запущен.
Соответствующим образом он задаёт значения переменных и запускает
интерпретатор, которому могут передаваться пользовательские команды
как из скрипта, так и в интерактивном режиме.
Затем загрузчик читает файл
/boot/loader.rc, который по умолчанию использует
файл /boot/defaults/loader.conf, устанавливающий
подходящие значения по умолчанию для переменных и читает файл
/boot/loader.conf для изменения в этих
переменных. Затем с этими переменными работает
loader.rc, загружающий выбранные модули и
ядро.
И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу,
ожидая нажатия клавиши, и загружает ядро, если этого не произошло.
Если ожидание было прервано, пользователю выдается
приглашение, которое воспринимает простой набор команд, в помощью
которых пользователь может изменить значения переменных, выгрузить
все модули, загрузить модули и окончательно продолжить процесс
загрузки или перезагрузить машину.
7.3.3.2. Встроенные команды загрузчика
Далее следуют наиболее часто используемые команды загрузчика.
Полное описание всех имеющихся команд можно найти на странице
справки о команде loader(8).
- autoboot секунды
-
Продолжает загрузку ядра, если не будет прерван в течение
указанного в секундах промежутка времени. Он выводит счетчик,
и по умолчанию выдерживается интервал в 10 секунд. - boot
[-параметры]
[имя ядра] -
Продолжить процесс загрузки указанного ядра, если оно было
указано, и с указанными параметрами, если они были
указаны. - boot-conf
-
Повторно провести тот же самый процесс автоматической
настройки модулей на основе переменных, что был произведен при
загрузке. Это имеет смысл, если до этого вы выполнили команду
unload, изменили некоторые переменные,
например, наиболее часто меняемую kernel. - help
[тема] -
Вывод сообщений подсказки из файла
/boot/loader.help. Если в качестве темы
указано слово index, то выводится список
имеющихся тем. - include имя файла
… -
Выполнить файл с указанным именем. Файл считывается и
его содержимое интерпретируется строчка за строчкой. Ошибка
приводит к немедленному прекращению выполнения команды
include. - load [-t
тип]
имя файла -
Загружает ядро, модуль ядра или файл указанного типа с
указанным именем. Все аргументы после имени файла передаются в
файл. - ls [-l]
[маршрут] -
Выводит список файлов по указанному маршруту или в корневом
каталоге, если маршрут не был указан. Если указан параметр
-l, будут выводиться и размеры файлов. - lsdev [-v]
-
Выводится список всех устройств, с которых могут быть
загружены модули. Если указан параметр -v,
выводится дополнительная информация. - lsmod [-v]
-
Выводит список загруженных модулей. Если указан параметр
-v, то выводится дополнительная
информация. - more имя файла
-
Вывод указанного файла с паузой при выводе каждой строки
LINES. - reboot
-
Выполнить немедленную перезагрузку машины.
- set переменная, set
переменная=значение -
Задает значения переменных окружения загрузчика.
- unload
-
Удаление из памяти всех загруженных модулей.
7.3.3.3. Примеры использования загрузчика
Вот несколько примеров практического использования
загрузчика:
-
Чтобы просто загрузить ваше ядро обычным образом, но в
однопользовательском режиме:boot -s
-
Для выгрузки обычных ядра и модулей, а потом просто загрузить
ваше старое (или другое) ядро:unload load kernel.old
Вы можете использовать kernel.GENERIC
для обозначения стандартного ядра, поставляемого на установочном
диске, или kernel.old для обращения к ранее
установленному ядру (после того, как, например, вы обновили или
отконфигурировали новое ядро). -
Для загрузки скрипта конфигурации ядра (автоматизированный
скрипт, который выполняет то, что вы обычно делаете в
конфигураторе ядра во время загрузки):load -t userconfig_script /boot/kernel.conf
Автозагрузка X сервера
Часто, в легких окружениях рабочего стола и оконных менеджеров для автозагрузки программ используется автозагрузка на уровне X сервера. Все запускаемые, таким образом, скрипты будут стартовать после запуска X сервера. Чтобы настроить такую автозагрузку Linux вам будет достаточно добавить путь к нужному скрипту в файл ~/.xinitrc или /etc/X11/xinit/xinitrc. Синтаксис добавляемой строки таков:
exec
путь_к_скрипту
&
Если файла ~/.xinitrc еще не существует, то его нужно создать:
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
Затем, чтобы добавить в автозагрузку linux скрипт, отредактируйте файл так, как вам нужно. Например, будем запускать Firefox:
exec /usr/bin/firefox &
Альтернатива 1: LILO
Emerge
LILO, или LInuxLOader, это проверенная временем рабочая лошадка среди загрузчиков Linux. Однако, по сравнению с GRUB ей явно не хватает функционала. LILO всё ещё используется на системах, где GRUB не может работать. Конечно, он также используется, потому что некоторые люди знают LILO лучше и хотят использовать его. В любом случае, Gentoo поддерживает оба загрузчика.
Установить LILO можно очень быстро; просто используйте emerge.
Настройка
Для настройки LILO сперва создайте /etc/lilo.conf:
Конфигурационный файл разбит на разделы для обозначения загрузочного ядра. Убедитесь, что известен путь до файла ядра (вместе с версией) и путь до initramfs файлов, так как они должны быть указаны в этом конфигурационном файле.
ЗаметкаЕсли корневая файловая система — JFS, добавьте строку после каждого варианта загрузки, поскольку JFS необходимо пересматривать журнал перед монтированием на чтение-запись.
Файл Пример конфигурации LILO
boot=/dev/sda # Установка LILO в MBR prompt # Дать пользователю возможность выбрать другой вариант timeout=50 # Ждать 5 (пять) секунд перед загрузкой варианта по умолчанию default=gentoo # После тайм аута загружать вариант "gentoo" compact # Это значительно сокращает время загрузки и сохраняет маленький размер файла map; может работать некорректно на некоторых системах image=/boot/vmlinuz-4.9.16-gentoo label=gentoo # Имя этого варианта read-only # При старте корень только для чтения. Не менять! root=/dev/sda3 # Расположение корневой файловой системы image=/boot/vmlinuz-4.9.16-gentoo label=gentoo.rescue # Имя этого варианта read-only # При старте корень только для чтения. Не менять! root=/dev/sda3 # Расположение корневой файловой системы append="init=/bin/bb" # Запуск встроенной оболочки восстановления Gentoo # Следующие две строки нужны для двойной загрузки с системой Windows. # В этом примере, Windows находится на /dev/sda6. other=/dev/sda6 label=windows
ЗаметкаЕсли схема разделов и/или используемый образ ядра другие, то внесите соответствующие корректировки.
Если необходим initramfs, то измените конфигурацию, указав файл initramfs и сообщив ему, где находится корневое устройство:
Файл Добавление информации о initramfs в загрузочную запись
image=/boot/vmlinuz-4.9.16-gentoo label=gentoo read-only append="root=/dev/sda3" initrd=/boot/initramfs-genkernel-amd64-4.9.16-gentoo
Если необходимо передать ядру дополнительные параметры используйте оператор . Например, добавьте оператор , чтобы включить кадровый буфер:
Файл Добавление параметра video к загрузочным параметрам
image=/boot/vmlinuz-4.9.16-gentoo label=gentoo read-only root=/dev/sda3 append="video=uvesafb:mtrr,ywrap,1024x768-32@85"
При использовании genkernel необходимо помнить, что ядро использует параметры загрузки так же, как и установочный CD. Например, если необходимо разрешить поддержку устройств SCSI, добавьте как параметр ядра.
Теперь сохраните файл и выйдите из редактора.
Установка LILO на диск
Для завершения запустите исполняемый файл /sbin/lilo, что бы LILO смог применить для системы настройки из /etc/lilo.conf (то есть установить себя на диск). Помните, что /sbin/lilo должен исполняться каждый раз, когда устанавливается новое ядро или был изменен файл lilo.conf для загрузки системы, если имя файла ядра было изменено.
Автозагрузка на уровне ядра
Автозагрузка на уровне ядра вряд ли будет вам очень полезной для повседневного применения, но я решил о ней упомянуть, поскольку такая возможность есть. С помощью параметра ядра init вы можете указать какую программу стоит запускать сразу после завершения инициализации ядра. Например, вы можете загрузить оболочку Bash вместо Systemd. Для этого достаточно подправить строку запуска ядра в конфигурационном файле Grub или во время запуска. Добавьте в конец параметр init:
Но, обычно, удобнее изменить это значение временно, в меню Grub. Читайте подробнее об этом в статье параметры ядра Linux. Так не выполняется автозагрузка программы linux, но, тем не менее, иногда может быть полезно.
Виды программ в Linux
Перед тем, как мы перейдем к запуску программ, нужно сначала понять что представляет из себя программа. В Linux программы отличаются от других файлов только тем, что для них установлен флаг исполняемости. Я уже подробно писал об этом в статье поэтому не буду повторяться.
Все программы можно поделить на несколько типов:
- Бинарные программы — содержат инструкции процессору уже готовые к выполнению, большинство программ находятся в таком формате, они быстрые и выполняются сразу же системой;
- Программы на байт-коде — это уже не процессорные инструкции, а инструкции определенной виртуальной машины, которая может их выполнять, без виртуальной машины такие команды не могут быть выполнены. Такие программы потребляют больше ресурсов, но тоже достаточно быстрые, их преимущество в том, что они могут выполняться без изменения везде где может работать виртуальная машина. К таким программам можно отнести программы на Java.
- Скриптовые программы — эти программы состоят из набора команд в виде обычного текста, которые выполняет специальный интерпретатор. Такие программы более медленные, но зато они проще в разработке и их код можно легко и быстро изменить.
А теперь перейдем к запуску программ.
Первый способ: Магазин приложений
Самый новый и наиболее удобный метод. Работает в Arch, Linux Mint, Fedora и Elementary OS. Удобный формат упаковки и распространения ПО поддерживается ведущими разработчиками софта, в числе которых Google и Microsoft.
Перейдите в магазин приложений Snapcraft.
Прокрутите страницу вниз до кнопки «Browse the Snap Store».
Если вы прокрутите страницу ниже, вы увидите различные приложения, расположенные по категориям. Устанавливать их можно тем же способом, который я рассмотрю на примере одной программы. Если вы точно знаете название нужного вам приложения, используйте поисковую строку. Чтобы установить популярный медиаплеер VLC, введите его название в строку поиска и нажмите кнопку «Search» («Поиск»). Отобразятся результаты поиска.
Откройте нужный вам: «VLC». Нажмите кнопку «Install».
Нажмите на кнопку «View in Desktop store». Ниже показана команда для установки через Консоль (Терминал).
Вам будет предложено открыть ссылку в Менеджере приложений Ubuntu. Выберите этот вариант. Нажмите «Open link».
Нажмите кнопку «Установить».
Введите пароль администратора компьютера. Нажмите «Подтвердить».
На экране отображается, на сколько процентов выполнен процесс установки.
Приложение установлено. Вам предлагается открыть программу нажатием кнопки «Запустить» или удалить ее.
Вы можете начать пользоваться плеером VLC прямо сейчас.
Он доступен вам в любое время в разделе приложений. В дальнейшем там будут появляться значки всех установленных вами приложений.
Выводы
В этой статье мы обсудили вопрос инсталляции Linux на Windows 10, посредством которой вы получили ответы на ряд таких вопросов:
Как сделать разбивку, правильно выбрать области и вынесли на рассмотрение вопрос установки на ноутбуке с UEFI.
Напоследок еще подчеркнем: чтобы удобно и удачно работать с Windows 10 и Linux воедино, потребуется остановить Windows FastBoot, ради доступности запуска системного раздела Windows в Linux.
В итоге инсталляции у вас появляется две независимые операционные системы и любые изменения в любой из них не будут влиять на вторую.
И еще, при переустановке операционной системы помните, что один из дисков требуется отключить.
Ссылка для скачивания Ubuntu:
https://youtube.com/watch?v=DAB9dPTJExw