Введение в процесс загрузки и запуска linux. Процесс загрузки Linux-системы. Что делать после установки

Итак, инсталляция Linux завершена, и вы перезапускаете компьютер. Если Linux - единственная операционная система, установленная на вашем компьютере (а, значит, загрузчик LILO размещается в главной загрузочной записи - MBR), то после обычного тестирования аппаратуры, выполняемого BIOS, ненадолго появится надпись

Если не предпринимать никаких действий, то на экран будет выдана масса сообщений, разбирать смысл которых мы пока не будем, и, наконец, появится стилизованное изображение пингвинчика. (я пока рассматриваю тот случай, когда вы при установке отказались от автоматической загрузки графической оболочки). Ниже изображения пингвина на экране написано:

Linux Version 2.0.36, Compiled #1 Tue Dec 29 13:11:11 EST 1998
One Intel 486 DX/2-WB Processor, 16M RAM, 33.28 Bogomips Total
Black Cat Linux release 5.2 (Fulcrun)
Kernel 2.0.36 on an i486 localhost login:

Я привел здесь то сообщение, которое появлялось у меня при одном из вариантов установки, когда я ставил Black Cat версии 5.2; у вас, конечно, сообщение будет отличаться в некоторых деталях. Если у вас хватит терпения дочитать эту книгу, то вы узнаете, что выдаваемое при загрузке сообщение при желании можно изменить, так что будет выдаваться что-нибудь вроде "Привет, дружище! Сегодня 11 ноября 2001 года. Сейчас 19 часов 22 минуты. Введи, пожалуйста, свое имя и пароль". Однако пока рано говорить о том, как это делается.

Если вы загружались с дискеты, то загрузка происходит точно также, только чуть медленнее.

Если Linux не единственная ОС на вашем компьютере, и вы используете LILO для организации многовариантной загрузки, то в тот момент, когда на экране появится надпись LILO boot: вы должны нажать клавишу ‹Tab› или ‹?›. Тогда LILO выдаст вам список меток, которые сопоставлены разным ОС. В версии 21 LILO уже автоматически выводит этот список на экран в виде меню. Необходимо выбрать из меню или ввести (набрать на клавиатуре) одну из этих меток и нажать клавишу ‹Enter›. Если вы выберете метку, соответствующую Linux, то в конце концов вы все равно должны увидеть слово login:, которое в данном случае служит приглашением к вводу вашего пользовательского имени.

3.2. Вход в систему

Как вы понимаете, в ответ на это приглашение необходимо ввести имя пользователя, а потом, по запросу, и пароль для входа в систему. Если это первый вход в систему после ее установки, то входить надо под именем ""root"". Это единственный пользователь, для которого обязательно заводится счет или бюджет (account) во время инсталляции. Этот пользователь является полным хозяином системы (как сейчас, так и в последующем), то есть имеет неограниченный доступ к ее ресурсам, может заводить и удалять других пользователей, останавливать систему и т. д. Неосторожное поведение пользователя с такими правами легко может привести к печальным последствиям, вплоть до полного краха системы. Поэтому обычно под этим именем входят в систему только для выполнения административных задач. Но у нас сейчас как раз такой случай, так что в ответ на приглашение login: вводим "root" и нажимаем клавишу ‹Enter› (или ‹Return›). Система выдаст запрос на ввод пароля:

Очевидно, что в ответ надо вводить пароль того пользователя, имя которого было введено ранее. При первой загрузке надо ввести тот пароль, которой был задан для пользователя root в процессе инсталляции, и нажать ‹Enter›. Заметим, что если после ввода имени очень долго не вводить пароль, то система снова вернется к запросу имени пользователя. После ввода пароля вы увидите примерно такую надпись:

Такая строка называется приглашением. Появление приглашения означает, что система готова воспринять и выполнить вашу команду. Сейчас это свидетельствует о том, что вы успешно вошли в систему. Вы видите черный экран и приглашение системы к вводу команды - то, что в MS-DOS или Windows принято называть режимом командной строки. Мы будем называть этот режим текстовым (в отличие от графического режима, предоставляемого системой X Window).

В приведенном примере приглашение включает в себя указание имени пользователя (root), имени системы (localhost) и тукущего каталога (/root). Вид приглашения тоже можно изменить. Во всех последующих примерах мы будем использовать приглашение, состоящее только из имени пользователя.

Прежде чем предложить вам ввести первую команду, надо сказать, что в любой UNIX-системе учитывается регистр символов, т. е. различаются строчные и прописные буквы. Поэтому вводить все команды и их параметры следует именно так, как указано в примерах, учитывая регистр.

Первая команда, которую стоит ввести - команда useradd. После имени команды надо ввести пробел и имя пользователя, например, jim:

После этого система будет знать о существовании пользователя jim (говорят, будет "открыт счет для пользователя jim"). Однако войти в систему (или, как обычно говорят, "логироваться") под этим именем еще невозможно. Для того, чтобы система разрешила работать пользователю с именем jim, надо задать ему пароль. Для этого вводим команду

Появится строка

Вводите пароль. После того, как вы завершите ввод нажатием клавиши ‹Enter›, система попросит ввести его повторно:

Если вы не ошиблись при вводе (пароль приходится вводить "вслепую", поскольку он не отображается на экране), появится сообщение: passwd: all authentication tokens updated successfully и приглашение системы. Если вы выбрали пароль не очень удачно (слишком короткий или простой), вам будет выдано предупреждение, но система все равно примет пароль и позволит новому пользователю входить с ним в систему.

Таким образом, вы познакомились с первыми двумя командами системы Linux: useradd и passwd. Следующая команда, о которой нужно знать каждому пользователю любой UNIX-системы - это команда man. Команда man - это система встроенной помощи системы Linux. Вводить ее надо с параметром - именем другой команды или ключевым словом, например,

В ответ вы получите описание соответствующей команды или информацию по теме, обозначенной ключевым словом. Поскольку информация обычно не помещается на одном экране, при просмотре можно пользоваться клавишами ‹PageUp› и ‹PageDown›, а также клавишей пробела. Нажатие клавиши ‹Q› в любой момент приводит к выходу из режима просмотра и возврату в режим ввода команд. Попробуйте просмотреть информацию по рассмотренным уже командам login и passwd. Заметим, что точно также можно получить информацию по самой команде man. Введите

К сожалению, в большинстве случаев информация выдается по-английски. Если вы не читаете по-английски, то терпеливо читайте настоящее руководство или другую подходящую книгу по данной теме.

Вы можете попробовать вводить еще некоторые команды и понаблюдать за реакцией системы. Попробуйте, например, команды, перечисленные в табл. 3.1 (вводите их с приведенными в таблице параметрами).

Таблица 3.1. Простейшие команды Linux.

Команда Краткое описание
whoami Сообщает имя, с которым вы вошли в систему в данном сеансе работы
w или who Сообщает, какие пользователи работают в данный момент в системе
pwd Сообщает имя текущего каталога
ls -l Выдает список файлов и подкаталогов текущего каталога
cd ‹имя_каталога› Осуществляет смену текущего каталога
ps ax Выдает список выполняющихся процессов

Просмотрите описания этих команд с помощью команды man.

Мы не будем приводить здесь более подробный список возможных команд. Во-первых, с необходимыми командами можно будет постепенно познакомиться в ходе дальнейшего чтения. Во-вторых, описания основных команд можно найти в любой книге по UNIX.

3.3. Консоль, виртуальные терминалы и оболочка

Итак, вы приобрели первый опыт работы в текстовом, или "консольном", режиме системы Linux. Понятия "терминала" и "консоли", которые встретятся нам еще не раз, требуется, вероятно, дополнительно пояснить.

Когда создавалась система UNIX, компьютеры были большими (мейнфреймами), и пользователи работали на них через множество последовательных интерфейсов для подключения удаленных терминалов. Терминал - это устройство, которое предназначено для взаимодействия пользователя с компьютером и состоит из монитора и клавиатуры. К вашему персональному компьютеру наверняка не подключены удаленные терминалы, но есть клавиатура и монитор, которые и выполняют роль терминала пользователя (только в его состав добавилась мышь).

У мейнфреймов имелся особый терминал, который предназначался для системного администратора и назывался консолью. Консоль обычно подсоединялась к компьютеру не по последовательному интерфейсу, а через отдельные разъемы (иногда в качестве устройства вывода в ее состав вместо монитора входило печатающее устройство).

Поскольку в UNIX-системах обычно соблюдаются традиции, клавиатура и монитор персонального компьютера ведут себя так же, как ранее консоль. Преимущество такого решения состоит в том, что все старые программы, создававшиеся для администраторов UNIX, без проблем работают и на новом типе системной консоли.

Но, кроме консоли, Linux позволяет подключать к компьютеру и удаленные терминалы и, более того, обеспечивает возможность работы с несколькими виртуальными терминалами с одной консоли. Нажмите комбинацию клавиш ‹Ctrl›+‹Alt›+‹F2›. Вы снова увидите приглашение login:. Однако это не возврат к началу работы с системой - вы просто переключились в другой виртуальный терминал. Здесь вы можете зарегистрироваться под другим именем. Попробуйте войти в систему под именем только что заведенного пользователя. После этого нажмите комбинацию клавиш ‹Ctrl›+‹Alt›+‹F1›. Вы вернетесь к первому экрану. По умолчанию Red Hat Linux открывает при запуске 6 параллельных сеансов работы (виртуальных терминалов), и этим иногда очень удобно пользоваться. Для переключения между виртуальными терминалами используются комбинации ‹Ctrl›+‹Alt›+‹F1› - ‹Ctrl›+‹Alt›+‹F6›. (Заметим, что при работе в текстовом режиме тот же результат можно получить, используя комбинации ‹Alt›+‹F1› - ‹Alt›+‹F6›, однако в графическом режиме без клавиши ‹Ctrl› не обойтись, так что лучше сразу привыкать к комбинациям из 3 клавиш). Кстати, если в процессе работы вы забыли, в каком терминале находитесь в данный момент, воспользуйтесь командой tty, которая выводит имя терминала в следующем формате: /dev/tty2.

Сразу же скажем, что, если вы хотите завершить сеанс работы с системой в одном из терминалов, вы можете сделать это нажатием комбинации клавиш ‹Ctrl›+‹D›. Это не приведет ни к остановке работы компьютера, ни к перезагрузке системы. Не забывайте, что Linux - многозадачная и многопользовательская система. Завершение работы одного пользователя не означает, что надо выключать компьютер. Просто завершается сеанс работы одного из пользователей, и система снова выводит в данном терминале приглашение, которое вы уже видели. Можно завершить сеанс работы и введя одну из команд logout или exit.

Зная теперь как открыть и закрыть сеанс работы в системе, выполните приведенные выше рекомендации, т. е. заведите себя как рядового пользователя (без суперпользовательских прав), завершите все сеансы работы, открытые от имени root, и снова войдите в систему под своим новым именем.

Теперь надо сказать несколько слов об оболочке. Оболочка, или просто shell (это слово часто не переводят, а оставляют в английском написании), - это программа, которая осуществляет все общение с пользователем. Именно оболочка воспринимает все команды, вводимые пользователем с клавиатуры, и организует исполнение этих команд. Поэтому оболочку можно назвать еще командным процессором (более привычный термин для пользователя DOS, не правда ли?). Строго говоря, когда выше говорилось, например, "система выводит приглашение", это неправильно, поскольку приглашение выводит именно оболочка, ожидая ввода пользователем очередной команды. Каждый раз, когда очередной пользователь входит в систему, команда login запускает для него командный процессор - оболочку. Если вы логировались со второго терминала под именем пользователя jim (или под другим выбранным вами именем), то обратите теперь внимание на различие в приглашениях у пользователей root и jim. У пользователя root приглашение оканчивается символом #, а у всех остальных пользователей - символом $.

Оболочку может запускать не только команда login. Вы можете просто ввести команду bash (именно так называется программа-оболочка в системе Red Hat Linux) и тем самым запустить новый экземпляр оболочки. Выходя из него (по команде exit или по комбинации клавиш ‹Ctrl ›+‹ D›) вы вернетесь к предыдущему экземпляру оболочки.

Оболочка bash является не только командным процессором, но и мощным языком программирования. В ней имеется целый ряд встроенных (внутренних) команд и операторов, а, кроме того, в качестве команды может использоваться любая программа, хранящаяся в виде файла на диске. Список встроенных команд можно получить по команде help. Попробуйте! Детальную информацию по конкретной встроенной команде выдает та же команда help с указанием в качестве параметра имени встроенной команды, например: help cd.

Поскольку оболочка играет очень важную роль в Linux, ей будет посвящена отдельная глава этой книги. Впрочем, аналогичный материал вы найдете в любой книге по UNIX. Стоит только отметить, что для UNIX-подобных систем разработано несколько альтернативных bash оболочек. Их можно использовать и в Linux, но по умолчанию запускается именно bash.

Рассмотрим теперь еще одну команду, которую вам необходимо знать, поскольку все же компьютер у вас персональный (неважно, дома ли это происходит, или на работе). А это значит, что вы и есть суперпользователь данного компьютера. Но, как уже было сказано выше, входить в систему под именем суперпользователя не рекомендуется, поскольку любое неосторожное действие суперпользователя может привести к нежелательным последствиям. Входя под именем простого пользователя, вы, по крайней мере, не можете по неосторожности удалить или испортить системные файлы. В то же время, имеется ряд действий (например, монтирование файловых систем), выполнить которые может только суперпользователь. Не перезагружать же каждый раз компьютер! Именно в таких ситуациях выручает команда su. Достаточно ввести команду su и текущая оболочка (так и хочется сказать "система") запустит для вас новый экземпляр оболочки, в который вы попадете уже с правами пользователя root. Естественно, что для этого вам придется (в ответ на соответствующий запрос) ввести пароль этого пользователя. Закончив выполнять администраторские действия, выйдите из оболочки, и вы снова станете непривилегированным пользователем с отведенными ему полномочиями.

Если вы вошли в систему под именем root, то вы можете аналогичным образом запустить новый экземпляр оболочки от имени любого пользователя, пароль которого вы знаете . Но для этого надо указать имя этого пользователя в командной строке, например:

Когда мы вводим su без указания имени, по умолчанию подставляется имя суперпользователя root.

Но в ОС Linux есть еще одна возможность временно переключаться в бюджет пользователя root для выполнения административных функций. Вспомните, что Linux - это многопользовательская система, в ней одновременно могут работать несколько пользователей. Поэтому в первом виртуальном терминале можно войти под именем root, а в любом другом терминале - под именем простого пользователя. Основную работу вы можете выполнять как простой пользователь, а когда потребуется выполнить административные функции, вы "зовете системного администратора". Для этого достаточно нажать ‹Ctrl›+‹Alt›+‹F1› - и системный администратор уже тут. По завершении операции, которую может выполнить только суперпользователь, вы немедленно должны вернуться в бюджет простого пользователя. В таком случае вы не рискуете нарушить что-либо в системе, пока еще не набрались необходимого опыта.

3.4. Редактирование командной строки. История команд

В предыдущих разделах вам было предложено выполнить несколько команд ОС Linux. Полагаю, что, если в процессе набора возникали ошибки, вы сами догадались, как их исправить. Тем не менее будет полезно привести для справки короткую сводку команд, позволяющих редактировать командную строку, а также вообще оказывать какое-то влияние на поведение оболочки с помощью клавиатуры (о мышке разговор отдельный).

Примечание . Приводимые ниже описания команд относятся к оболочке GNU bash версии 1.14.7(1). Думается, что они будут верны и для последующих версий этой оболочки.

Таблица 3.2. Клавиши редактирования командной строки

Клавиша Описание реакции системы
‹Стрелка вправо› или ‹Ctrl›+‹F› Перемещение вправо по командной строке в пределах уже набранной цепочки символов плюс один символ справа (место для ввода следующего символа)
‹Стрелка влево› или ‹Ctrl›+‹B› Перемещение на один символ влево
‹Esc›+‹F› Перемещение на одно слово вправо
‹Esc›+‹B› Перемещение на одно слово влево
‹Home› или ‹Ctrl›+‹A› Перемещение в начало набранной цепочки символов
‹End› или ‹Ctrl›+‹E› Перемещение в начало/конец набранной цепочки символов
‹Del› или ‹Ctrl›+‹D› Удаление символа, на который показывает курсор
‹Backspase› Удаление символа в позиции, предшествующей курсору
‹Ctrl›+‹K› Удалить правую часть строки, начиная с символа, на который указывает курсор
‹Ctrl›+‹U› Удалить левую часть строки, включая символ, который находится слева от курсора
‹Enter› или ‹Ctrl›+‹M› Запуск на выполнение команды, определяемой набранной цепочкой символов
‹Ctrl›+‹L› Очистить экран и поместить текущую команду в верхней строке экрана
‹Ctrl›+‹T› Поменять местами два символа: символ, на который показывает курсор, и символ слева от курсора, затем, курсор переместить на один символ вправо
‹Esc›+‹T› Поменять местами два слова: слово, на которое указывает курсор и слово слева от первого
‹Ctrl›+‹K› Вырезать часть строки от текущей позиции курсора до конца строки (вырезанная часть строки сохраняется в буфере, ее можно вставить в другое место строки)
‹Esc›+‹D› Вырезать часть строки от текущей позиции курсора до конца текущего слова (если курсор указывает на пробел между словами, то вырезается все слово справа от курсора)
‹Esc›+‹Del› Вырезать часть строки от текущей позиции курсора до начала текущего слова (если курсор указывает на пробел между словами, то вырезается все слово слева от курсора)
‹Ctrl›+‹W› Вырезать часть строки от текущей позиции курсора до предыдущего пробела
‹Ctrl›+‹Y› Вставить последний вырезанный текст в позицию курсора
‹Esc›+‹C› Символ, на который указывает курсор, заменить на тот же, но заглавный, а курсор переместить на первый пробел справа от текущего слова
‹Esc›+‹U› Сделать символы данного слова заглавными, начиная с символа, на который указывает курсор, а курсор установить на пробел справа от слова
‹Esc›+‹L› Превратить символы, начиная с символа, на который указывает курсор, до конца данного слова в прописные (маленькие) буквы, а курсор установить на пробел справа от слова
‹Shift›+‹PgUp› ‹Shift›+‹PgDown› Эти команды позволяют просмотреть несколько страниц экранного вывода (количество зависит от размера видеопамяти); полезны в тех случаях, когда та или иная команда выводит на экран очень много информации, быстро пробегающей по экрану и как бы исчезающей для пользователя; как видите, эта информация не пропадает
‹Ctrl›+‹C› Прервать выполнение запущенной команды
‹Ctrl›+‹D› Выход из оболочки bash

Примечание . Если вы работаете не просто в оболочке bash, а запустили программу Midnight Commander, то такие клавиши как ‹Стрелка вправо›, ‹Стрелка влево›, ‹Home›, ‹End›, ‹Del› не могут использоваться так, как указано в приведенной таблице, поскольку они используются для перемещения подсветки в текущей панели . Но указанные выше в скобках комбинации символьных клавиш с клавишами ‹Ctrl› и ‹Esc› по-прежнему действуют для редактирования командной строки.

Список возможных команд не ограничивается только приведенными в табл. 3.2, но из-за ограниченности объема книги невозможно привести здесь полный перечень клавиатурных команд. Для получения дополнительной информации воспользуйтесь командой info bash.

Заметим, что оболочка bash имеет встроенную подпрограмму, предназначенную для облегчения ввода команд в командной строке. Эта подпрограмма вызывается при двукратном нажатии клавиши ‹Tab› после того, как вы уже ввели некоторое число символов. Если эти символы являются началом названия одной из стандартных команд, которые известны оболочке, то возможны два варианта реакции оболочки на двукратное нажатие клавиши ‹Tab›. Если по введенным символам команда определяется однозначно, оболочка просто добавляет окончание команды в командную строку. Если однозначно восстановить имя команды по введенным символам невозможно, то выдается список возможных вариантов продолжения для того, чтобы пользователь мог ввести еще несколько символов, позволяющих однозначно завершить ввод команды нажатием клавиши ‹Tab›.

Если вы попробуете дважды ввести символ табуляции в пустой командной строке, то после первого ввода вы получите только звуковой сигнал, а после второго - примерно следующее сообщение: "There are 1217 possibilities. Do you really wish to see them all? (y or n)" ("Возможны 1217 вариантов завершения. Вы действительно хотите увидеть их все?").

Если дважды нажать клавишу табуляции после того, как введена одна из команд и пробел, оболочка предполагает, что вы ищете имя файла, который должен вводиться как параметр команды, и выдает в качестве подсказки список файлов текущего каталога. Если же достаточная часть имени файла введена, то заканчивается ввод этого имени в командную строку. Аналогичным образом можно пытаться угадывать окончания переменных окружения, если вместо клавиши ‹Tab› воспользоваться комбинацией ‹Esc›+‹$›.

Для практической работы с оболочкой также полезно знать, что оболочка запоминает некоторое число введенных команд (по умолчанию 1000, это значение задается в переменной HISTSIZE; см. гл. 5) и позволяет вызывать их путем выбора из списка - так называемой истории команд. Историю команд можно просмотреть, введя в командной строке history (здесь вы сможете воспользоваться комбинациями клавиш ‹Shift›+‹PgUp› и ‹Shift›+‹PgDown›, чтобы просмотреть то, что выдаст эта команда). История команд сохраняется в файле, определяемом переменной HISTFILE (обычно $HOME/.bash_history). Для работы с историей команд в оболочке bash используются следующие комбинации клавиш.

Таблица 3.3. Клавиши для управления историей команд.

Клавиша Описание реакции системы
‹Стрелка вверх› или ‹Ctrl›+‹P› Переход к предыдущей команде в списке (движение назад по списку)
‹Стрелка вниз› или ‹Ctrl›+‹N› Переход к следующей команде в списке (движение вперед по списку)
‹PgUp› Переход к (вызов в командную строку) самой первой команде, сохраненной в истории команд
‹!›, ‹N› Выполняется (без нажатия клавиши ‹Enter›) n-ная команда из списка истории команд
‹!›, ‹-›, ‹N› Выполняется n-ая от конца списка команда
‹!›, строка символов Выполняется команда, имя которой начинается на строку символов (поиск нужной команды осуществляется движением в обратном порядке от конца файла истории и выполняется первая попавшаяся команда, которая начинается на строку символов)
‹Ctrl›+‹O› То же что нажатие клавиши ‹Enter›, затем отображается очередная команда из файла истории

3.5. Завершение работы системы Linux

Хотя компьютер, работающий под управлением ОС Linux, при выполнении некоторых условий можно оставлять работающим круглосуточно, большинство пользователей персональных компьютеров привыкли выключать их после завершения работы. Если вы работаете с ОС Linux, нельзя выключать компьютер простым отключением питания, как это было под MS-DOS. Дело в том, что в любой момент времени в системе запущено несколько процессов, вы могли видеть это, когда выполняли команду

(и можете посмотреть еще раз, повторив запуск этой команды). Но более важная причина состоит в том, что некоторые из этих процессов могут работать с файлами, причем система не записывает все изменения файлов на диск сразу после внесения этих изменений пользователем или процессом, а сохраняет их временно в оперативной памяти (кэширует). Если просто выключить питание, эти изменения не будут сохранены и пропадут, что иногда может привести даже к невозможности последующей загрузки системы. Так что надо уметь правильно завершить работу системы перед выключением компьютера. Это делается командой shutdown.

Команда shutdown может быть выполнена только пользователем root , так что вы либо должны были войти в систему под этим именем, либо должны предварительно выполнить команду su, чтобы приобрести соответствующие права.

Команда shutdown имеет следующий синтаксис:

# shutdown ‹options› ‹time› ‹warning-massage›

Замечание

Существует некоторая вероятность того, что запустив команду, вы получите ответ "command not found". Это значит, что оболочка не знает, где находится файл программы. В таком случае вам необходимо ввести команду с указанием полного пути, в данном случае в виде /sbin/shutdown -h, поскольку для команды shutdown файл программы лежит в каталоге /sbin.

Из опций программы shutdown наиболее часто используются две:

H - полная остановка системы (компьютер будет выключен);

R - перезагрузить систему.

Параметр time указывает время, когда должна быть выполнена команда (не обязательно выполнять ее немедленно). Время можно указать в форме задержки от текущего момента. Например, если вы хотите, чтобы система остановилась через 5 минут, вводите команду

что будет означать "остановить систему через 5 минут и перезагрузиться после того, как работа будет корректно завершена"". Для вас пока наиболее актуальной формой этой команды будет, скорее всего,

когда вы захотите просто выключить компьютер. Эквивалентом команды

является команда halt. При нажатии известной комбинации клавиш ‹Ctrl›+‹Alt›+‹Del› в Red Hat Linux выполняются действия, аналогичные команде

так что таким образом тоже можно выключить компьютер, только надо в момент перезагрузки отключить питание.

3.6. Помощь по работе с Linux

Вы завершили первый сеанс работы с операционной системой Linux, и, надеюсь, понимаете, что вам еще не раз потребуется подсказка в разных ситуациях. Надеюсь также, что настоящая книга сможет служить вам такой подсказкой на первых порах, но она наверняка не решит всех ваших проблем. Поэтому постараюсь сразу указать другие источники информации. При этом я несколько забегаю вперед, рассказывая о получении подсказки в графическом режиме работы, о котором еще ничего не было сказано. Но это оправдано, поскольку о способах выхода из затруднительных ситуаций лучше знать заранее.

Если вы окажетесь в ситуации, когда не знаете, что предпринять или сделать для достижения желаемой цели, лучше всего начать искать подсказку в самой системе. Дистрибутив Red Hat Linux содержит тысячи страниц документации, представленной в электронном виде, так что ответы на все возникающие вопросы у вас, что называется, "на кончиках пальцев". Существует несколько независимых источников, которые содержат информацию почти по любому аспекту работы в системе Linux:

Страницы интерактивного руководства man;

Гипертекстовое руководство info;

Документация, прилагаемая к пакетам ПО;

Текстовые файлы HOWTO и FAQ проекта Linux Documentation Project;

Команда locate.

Необходимо сразу сказать, что большую часть информации из этих источников вы будете получать на английском языке. Только для русифицированных дистрибутивов часть страниц интерактивного руководства man выдается на русском языке. Можно дополнительно скачать из Интернета имеющиеся там страницы руководства man, переведенные на русский язык [П5.1], и разместить их в соответствующих каталогах. Но все равно, на русский переведено далеко не все. Учитывая это замечание, рассмотрим каждый из перечисленных выше источников информации подробнее.

3.6.2. Страницы интерактивного руководства man

Выше уже было вкратце рассказано о команде man, с помощью которой пользователь всегда может в затруднительной ситуации получить подсказку почти по любой команде системы, форматах файлов и системных вызовах. Это основной способ получения подсказки во всех UNIX-системах. Страницы руководства man в Linux делятся на следующие секции:

Таблица 3.4. Основные секции интерактивного руководства man

Секция Содержание
1 Команды пользователя
8 Системные команды
2 Системные вызовы
3 Библиотечные вызовы (подпрограммы)
4 Устройства
5 Форматы файлов
6 Игры
7 Разное
9 Ядро (kernel internals)
n Tcl/Tk commands

Порядок перечисления секций в этой таблице не случаен. Дело в том, что файлы с информацией расположены в подкаталогах каталога /usr/man и команда man ищет нужную информацию, просматривая эти подкаталоги именно в том порядке, который приведен табл. 3.4. Если вы, например, дадите команду

то получите справку о команде swapon из секции 8. Поэтому если вы хотите получить справку по системному вызову swapon, надо дать команду

указывая номер секции, в которой надо искать информацию.

Страницы man просматриваются с помощью команды less (что дает возможность просматривать информацию поэкранно и перемещаться по этим экранам вперед и назад), так что для управления процессом вывода информации можно использовать клавиши, используемые в программе less. Наиболее употребительные:

Таблица 3.5. Клавиатурные команды, используемые при просмотре man-страниц

Клавиша Назначение
‹Q› Выход из программы
‹Enter› Просмотр строка за строкой
‹Space› Вывод следующего экрана информации
‹B›

Для выбора и запуска операционной системы во время загрузки компьютера используется специализированная программа - загрузчик. Самый популярный загрузчик - Grub. При установке нескольких операционных систем, например, Linux поверх Windows, в меню загрузчика первой будет последняя установленная ОС.

Это не вызовет проблем у пользователей, которые пользуются Linux как основной системой, для них это даже более предпочтительный вариант. Но если вы еще новичок, и хотите использовать Linux второй системой, а Windows пока еще основной, до тех пор, пока не освоитесь, то наверное захотите чтобы первой была Windows. В этой статье мы рассмотрим как сделать загрузку Windows первой в Grub. Рассмотрим два способа: с помощью программы Grub Customizer и вручную, через файлы конфигурации загрузчика Grub.

Grub Customizer

Grub Customizer - это программа, позволяющая настраивать различные параметры загрузчика Grub. В том числе и положение и очередность пунктов загрузки. Установить программу можно из официальных репозиториев. Например, в Ubuntu нужно использовать ppa:

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
$ sudo apt-get update
$ sudo apt-get install grub-customizer

Для запуска программы откройте терминал (Ctrl+Alt+T) и наберите grub-customizer:

Для работы программы необходимы права root, в некоторых системах возможно придется использовать такую команду:

gksu grub-customizer

Также программу можно запустить из главного меню. Главное окно выглядит вот так:

Несколько секунд после запуска программа будет сканировать установленные операционные системы, затем в этом же окне мы сможем перенести загрузку Windows на первое место. Для этого кликните на нужном пункте правой кнопкой чтобы открылось контекстное меню:

В меню выберите пункт Переместить вверх . Это действие нужно будет повторить несколько раз, пока Windows не будет первой в списке. Теперь будет выполняться загрузка windows по умолчанию grub.

Если потом вы захотите опустить Windows обратно вниз, есть обратное действие - Переместить вниз .

Для сохранения настроек просто нажмите кнопку Сохранить. Готово. Можете перезагружать компьютер и смотреть что получилось.

Но я хочу затронуть еще пару настроек, которые могут быть полезны. Вместо того чтобы делать загрузку Windows первой в Grub, можно изменить пункт запускаемый по умолчанию. Перейдите на вкладку Основные настройки :

Здесь для выбора пункта по умолчанию используемого по умолчанию есть список Задействовать :

Кроме того, можно загружать по умолчанию последнюю загруженную ОС, для этого есть галочка:

Изменение порядка загрузки Grub через терминал

Как я и обещал, теперь рассмотрим как сделать загрузку WIndows первой в Grub с помощью конфигурационных файлов. Конфигурация Grub находится в файле /boot/grub/grub.cfg.

gksu gedit /boot/grub/grub.cfg

Как правило, строки меню выглядят вот так:

menuentry имя_пункта --опции {
...

Например пункт Windows:

menuentry "Windows 8 (loader) (on /dev/sda1)" --class windows --class os $menuentry_id_option "osprob
er-chain-FC324E26324DE66C" {
....

Теперь чтобы изменить порядок пунктов меню достаточно вырезать все до обратной закрывающей скобочки, вместе с этой строкой, и вставить перед всеми другими пунктами. Затем можно сохранить файл и готово. Перезагружайте и смотрите. Загрузка Windows выполняется по умолчанию. Только минусом данного способа является то, что при обновлении конфигурации Grub все настройки собьются.

Аналогично тому как мы настраивали пункт, загружаемый по умолчанию в Grub Customizer, это можно сделать и в терминале.

Откройте файл /etc/default/grub.

gksu gedit /etc/default/grub

Здесь нас интересует строчка:

Замените 0, на нужный пункт для загрузки, также вместо цифры можно указать имя пункта, например:

GRUB_DEFAULT="Windows 8 (loader) (on /dev/sda1)"

Посмотреть доступные пункты загрузки не открывая файл конфигурации можно командой:

sudo grep menuentry /boot/grub/grub.cfg

Еще можно настроить загрузку последней загруженной системы, для этого добавьте строчку

GRUB_SAVEDEFAULT=true

А в GRUB_DEFAULT укажите saved:

GRUB_DEFAULT=saved

Очевидным плюсом этого способа есть то, что настройки во время обновления конфигурации Grub не собьются, так как во время обновления информация берется из этого файла. Теперь давайте обновим конфигурацию и сохраним настройки командой:

Не во всех системах работает такой вариант, поэтому можно использовать другую команду:

grub2-mkconfig -o /boot/grub/grub.cfg

Вот и все. Теперь вы знаете как сделать загрузку Windows первой в Grub. Но представленную в этой статье информацию можно использовать в более широких целях. Она будет полезна не только для Windows, но и для любых других нескольких систем, очередностью загрузки которых нужно управлять.

Похожие записи:


Наверное, наиболее первичная и типовая задача системного администратора – это обеспечение правильной загрузки операционной системы.

Для того, чтобы это осуществить, администратору совершенно необходимо четко понимать принципы загрузки системы и различные этапы этого процесса.

Надо сказать, что задачи на устранение различных неисправностей при загрузке системы часто встречаются в различных экзаменах на сертификацию по направлениям ОС.

Первым делом после включения компьютера происходит выполнение специального кода запуска, который представлен в виде базовой системы ввода-вывода (BIOS). Системе BIOS известна почти вся конфигурация железа. Есть сведения с какого устройства считывать первые 512 байт (MBR).

Именно в MBR (Master Boot Record) хранится программа первичной загрузки (stage 1), в которой содержится информация о том, в каком месте диска расположена программа вторичной загрузки (stage 2), которая загружает саму операционную систему.

Таким загрузчиком в нашем конкретном примере является GRUB (Grand Unified Boot Loader). Есть и промежуточный этап (так называемый stage 1.5), помогающий загрузчику ОС определить особые параметры файловой системы. Эта подпрограмма используется, если загрузчик GRUB не был установлен прямо в MBR.

После получения управления GRUB отображает список операционных систем (Linux/Windows и различных версий ядра Linux), если они доступны. В ином случае управление переходит на командную строку GRUB.

Предположим, что всё идёт как надо и мы выбрали нужную нам операционную систему (или версию ядра). В этом случае GRUB переходит к своему любимому делу – загружает саму операционную систему.

Вся информация о ходе процесса загрузки выводится на экран (если в опциях загрузки ядра отсутствует параметр quiet ), а так же в журнальный файл /var/log/dmesg . Просмотреть который можно непосредственно, либо используя утилиту dmesg .

По выводу служебной информации можно сделать выводы о параметрах оборудования и программного обеспечения, таких как версии ядра ОС, количество оперативной памяти, количество и характеристики процессоров, жесткие диски и соответствующие им разделы, сетевые карты, файл подкачки и многое другое.

Анализ этой информации в случае невозможности загрузки ОС может пролить свет на возникшую проблему, поэтому этот файл считается достаточно важным для траблшутинга.

Когда ядро системы загружено, производится базовая настройка необходимых устройств, подсистемы LVM и RAID и диск в оперативной памяти initrd, позволяющий загрузить необходимые драйверы.

Дальнейшие действия по загрузке процессов сильно отличаются в зависимости от версии ОС. В RHEL5 используется традиционный процесс загрузки служб SysV. В RHEL6 уже есть частичное распараллеливание загрузки процессов, причем по необходимости, а не все подряд. В новых версиях RHEL (с версии ядра 3.0) процесс ещё больше оптимизирован за счёт использования программы systemd, так же как в Fedora с 15-ой версии. В этом случае используется асинхронный режим работы, ускоряющий загрузку ОС.

Передав управление процессу init ядро переходит в особый режим и принимает обращения всех процессов через специальный универсальный интерфейс системных вызовов. На этом загрузку Linux можно считать завершенной.

Вам так же понравится:

Операционная система Linux Курс лекций. Учебное пособие Исправляем брешь CVE-2015-0235 в Linux

Linux обычно ставят после Windows так, чтобы GRUB затер загрузчик Windows и отображал во время загрузки обе системы. По умолчанию сначала идет Linux, в конце - Windows. Кого-то такое порядок может не устраивать . Есть и другой важный параметр - время ожидания.

Обычно приходится ждать 10 секунд, и только потом грузится первая ОС. Этот параметр можно легко изменить .

Все, что нужно сделать, - это отредактировать файл «grub.cfg» . Чтобы обезопасить себя, будем работать с копией файла на рабочем столе. Чтобы изменения можно было сохранить, файл нужно открыть от имени администратора - для этого используем консоль .

1 . Заходим в папку «boot/grub/ » и копируем файл «grub.cfg » на рабочий стол. Это можно делать через консоль или через файловый менеджер .


Если выбираете консоль, то введите команду: «sudo cp /boot/grub/grub.cfg /home/kij/Desktop/ » .


«kij» - это имя пользователя, у вас оно наверняка другое.

2 . Открываем файл «grub.cfg » на рабочем столе в текстовом редакторе. Делаем это через консоль: «sudo kate /home/kij/Desktop/grub.cfg »

«kate » - это текстовый редактор Linux Mint KDE 15. Если у вас другой дистрибутив, то и редактор, скорее всего, другой, например, «gedit ».

3. Обращаем внимание на строку «set default=0 ».

Каждый пункт в GRUB имеет свой номер:

Linux - 0;

Linux...recovery mode - 1;

Memory test - 2;

Memory test (другая модификация) - 3;

Windows 7 - 4.


У вас может быть немного по-другому. В моем случае показатель default должен равняться 4, тогда по умолчанию будет грузиться Windows.

4. Теперь изменяем временный параметр. Ищем в том же «grub.cfg » строку «set timeout=... ».


Выставляем, сколько нужно. Если компьютер используют несколько пользователей, выставляем длительный таймаут - секунд 30. Если постоянно загружаете одну ОС, то ставьте 2-3 секунды.

5. Сохраняем изменения. Закрываем редактор.

6. Копируем файл с рабочего стола обратно в системную папку. Используем команду «sudo cp /home/kij/Desktop/grub.cfg /boot/grub/ ».


Все, теперь перезагружаем компьютер, чтобы удостовериться, что параметры выставлены правильно.

Если на вопрос: «как добавить программу в автозагрузку?» — начинающие пользователи находят ответ достаточно быстро, то вопрос о запуске скрипта, при выключении/перезагрузки, ставит их в тупик. В статье будет описан стандартный способ для автоматического выполнения команд при включении и выключении linux, а также более простой способ для пользователей, у которых установлен gdm и графический интерфейс, например ubuntu.

Консольный вариант.

Немного теории.
Следует знать, что в Linux существует 7 уровней запуска. Однако, использоваться могут только 6.
Как у всех уважающих себя программ отсчёт начинается с 0-ля.
0 — Остановка или выключение системы.
1 — Однопользовательский режим.
2 — Многопользовательский режим, но без поддержки сети.
3 — Тоже самое, но с сетью.
4 — Добавили для красоты Не используется.
5 — Графический режим с загрузкой X сервера.
6 — Перезагрузка.
Если перейти в папку /etc (В некоторых дистрибутивах /etc/rc.d) то можно увидеть папки с 7-мью уровнями запуска.

Например при выключении компьютера, выполнятся все скрипты из папки rc0.d


Тут следует остановится по подробнее. Дело в том, что самих скриптов (а точнее сценариев) в этой папке нету, а есть только ссылки на файлы, которые лежат в папке /etc/init.d. Эти сценарии выполняют различные задачи, в зависимости от параметра start или stop (например /etc/init.d/reboot start и /etc/init.d/reboot stop это разные команды, а /etc/init.d/reboot вообще не будет работать). Если в ссылке стоит первая буква S, то значит сценарию подаётся параметр start, а если стоит буква K(от слова kill), то параметр stop. Цифра после буквы обозначает порядок выполнения сценария.
Например, на выше вставленном скриншоте вначале выполниться команда /etc/init.d/hddtemp stop, а уже позже /etc/init.d/networking start.
Хватит теории. Переходим к практике.
Для того, чтобы добавить команду в автозагрузку, достаточно поместить её в файл /etc/rc.local.

В этой части статьи в качестве редактора будет использоваться nano, но вы можете пользоваться своим любимым редактором, например gedit.

sudo nano /etc/rc.local

И помещаем наши команды чуть выше строчки с exit 0.
Для того, что бы команды выполнялись перед выключением или перезагрузкой нам нужно создать сценарий в папке /etc/init.d

sudo nano /etc/init.d/имя_сценария

Вставляем следующий код:

#! /bin/sh
case "$1" in
start)
echo "подан сигнал start"
;;
stop)
echo "подан сигнал stop"
;; esac

Если будет подаваться только один сигнал, то просто закомментируйте строку поставив в начале команды знак #
Например

...
case "$1" in
start)
#
;;
...

Теперь делаем файл исполняемым:

sudo chmod +x /etc/init.d/имя_сценария

sudo update-rc.d имя_сценария start 20 0 6 . stop 1 0 6 .

Точки важны (обе). Исследуя просторы интернета, у меня сложилось впечатление, что синтаксис этой программы иногда меняется. Актуальные примеры можно посмотреть по команде «man update-rc.d». Примеры будут в низу.

Эта команда создаст по 2 ссылки в каталогах /etc/rc0 .d (второе число в команде) и /etc/rc6 .d (третье число в команде). Причём вначале будет выполняться сценарий с параметром stop (т.к. стоит 1), а уже потом с параметром start (т.к. стоит 20).
Если второй параметр не нужен, то можно выполнить команду:

sudo update-rc.d имя_сценария stop 1 0 6 .

Советую ставить приоритет повыше (т.е. число после start или stop должно быть маленьким), желательно меньше 20. В обратном случае у меня иногда зависал компьютер при попытке перезагрузиться.

Для пользователей ubuntu, да и многих других современных дистрибутивов с gdm можно воспользоваться…

Графический вариант.

Что касается автозагрузки то можно воспользоваться способом описанным .
Или просто открыть «автоматически запускаемые приложения» командой:

gnome-session-properties

Для выполнения скрипта при выключении компьютера, помещаем его в файл /etc/gdm/PostSession/Default

sudo gedit /etc/gdm/PostSession/Default

Прямо над строчкой exit 0.

Публикации по теме