Меню Рубрики

Установки ubuntu а я админ

Администратор в Ubuntu, или Что такое sudo

Содержание

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

Раньше данная проблема решалась достаточно просто: при обладании паролем root можно было зайти в систему под его аккаунтом либо временно получить его права, используя команду su . Потом выполнить все необходимые операции и вернуться обратно под обычного пользователя. В принципе, такая схема работает неплохо, однако у неё есть много существенных недостатков, в частности, невозможно никак (точнее, очень сложно) ограничивать административные привилегии только определённым кругом задач.

Поэтому в современных дистрибутивах Linux вместо root аккаунта для администрирования используется утилита sudo .

В Ubuntu по умолчанию root аккаунт вообще отключён, т.е. вы никаким способом не сможете попасть под root, не включив его. root именно что отключён, т.е. он присутствует в системе, под него всего лишь нельзя зайти. Если вы хотите вернуть возможность использовать root, смотрите ниже пункт о включении root аккаунта.

Что такое sudo

sudo — это утилита, предоставляющая привилегии root для выполнения административных операций в соответствии со своими настройками. Она позволяет легко контролировать доступ к важным приложениям в системе. По умолчанию, при установке Ubuntu первому пользователю (тому, который создаётся во время установки) предоставляются полные права на использование sudo. Т.е. фактически первый пользователь обладает той же свободой действий, что и root. Однако такое поведение sudo легко изменить, об этом см. ниже в пункте про настройку sudo.

Где используется sudo

sudo используется всегда, когда вы запускаете что-то из меню Администрирования системы. Например, при запуске Synaptic вас попросят ввести свой пароль. Synaptic — это программа управления установленным ПО, поэтому для её запуска нужны права администратора, которые вы и получаете через sudo вводя свой пароль.

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

Запуск графических программ с правами администратора

Для запуска графических программ с правами администратора можно воспользоваться диалогом запуска программ, вызываемым по умолчанию сочетанием клавиш Alt + F2 .

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

Вместо gksudo можно подставить gksu , кроме того, пользователи KDE должны вместо gksudo писать kdesu . У вас попросят ввести свой пароль, и, если вы обладаете нужными правами, Nautilus запуститься от имени администратора. Запуск любого графического ПО можно производить с правами администратора, просто написав в диалоге запуска

Запуск программ с правами администратора в терминале

Для запуска в терминале команды с правами администратора просто наберите перед ней sudo :

У вас попросят ввести ваш пароль. Будьте внимательны, пароль при вводе никак не отображается, это нормально и сделано в целях безопасности, просто вводите до конца и нажимайте Enter . После ввода пароля указанная команда исполнится от имени root.

Система какое-то время помнит введённый пароль (сохраняет открытой sudo-сессию). Поэтому при последующих выполнениях sudo ввод пароля может не потребоваться. Для гарантированного прекращения сессии sudo наберите в терминале

Кроме того, часто встречаются ошибки, связанные с каналами в Linux. При исполнении команды

с правами root исполнится только cat , поэтому файл result.txt может не записаться. Нужно либо писать sudo перед каждой командой, либо временно переходить под суперпользователя.

Получение прав суперпользователя для выполнения нескольких команд

Иногда возникает необходимость выполнить подряд несколько команд с правами администратора. В этом случае можно временно стать суперпользователем одной из следующих команд:

После этого вы перейдёте в режим суперпользователя (с ограничениями, наложенными через настройки sudo), о чём говорит символ # в конце приглашения командной строки. Данные команды по действию похожа на su , однако: — sudo -s — не меняет домашний каталог на /root, домашним остается домашний каталог пользователя вызвавшего sudo -s, что обычно очень удобно. — sudo -i — сменит так же и домашний каталог на /root.

Для выхода обратно в режим обычного пользователя наберите exit или просто нажмите Ctrl + D .

Использование традиционного root аккаунта и команды su

Ubuntu 11.04 и младше

Для входа под root достаточно задать ему пароль:

Потом на экране входа нажмите Другой… и введите логин (root) и пароль, который вы задали.

Ubuntu 11.10 и старше

Начиная с версии 11.10 был установлен менеджер входа lightdm, и дело со входом под root обстоит немного сложнее.

1. Устанавливаем root пароль. Введите в терминал:

2. Включаем пункт «Введите логин». Введите в терминал:

3. Перезагружаем lightdm. Введите в терминал:

Все, на экране входа появится пункт «Логин». В поле логин вводим «root», в поле пароль — пароль, который мы задали на первом этапе.

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

Настройка sudo и прав доступа на выполнение различных команд

sudo позволяет разрешать или запрещать пользователям выполнение конкретного набора программ. Все настройки, связанные с правами доступа, хранятся в файле /etc/sudoers . Это не совсем обычный файл. Для его редактирования необходимо (в целях безопасности) использовать команду

По умолчанию, в нём написано, что все члены группы admin имеют полный доступ к sudo , о чём говорит строчка

Подробнее о синтаксисе и возможностях настройки этого файла можно почитать выполнив

Разрешение пользователю выполнять команду без ввода пароля

Для того, что бы система не запрашивала пароль при определенных командах необходимо в sudoers после строки # Cmnd alias specification добавить строку, где через запятую перечислить желаемые команды с полным путём(путь команды можно узнать, выполнив which имя_команды:

И в конец файла дописать строку

Создание синонимов (alias`ов)

Для того, чтобы не только не вводить пароль для sudo, но и вообще не вводить sudo, сделайте следующее: откройте файл .bashrc, находящейся в вашем домашнем каталоге

и добавьте в конец файла строки

Время действия введённого пароля

Возможно, вы хотите изменить промежуток времени, в течение которого sudo действует без ввода пароля. Этого легко добиться добавив в /etc/sudoers (visudo) примерно следующее:

Здесь sudo для пользователя foo действует без необходимости ввода пароля в течение 20 минут. Если вы хотите, чтобы sudo всегда требовал ввода пароля, сделайте timestamp_timeout равным 0.

sudo не спрашивает пароль

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

Однако, в некоторых случаях sudo внезапно перестаёт требовать пароль само по себе. Если сделать visudo , то можно увидеть примерно такую строку, которую пользователь вроде бы не добавлял:

Скорее всего, эта катастрофичная строка была добавлена при установке программы типа Connect Manager от МТС или Мегафона. В таком случае, её нужно поменять на строку, разрешающую с правами root запускать только этот Connect Manager, примерно так:

Есть и другие варианты решения проблемы, небольшое обсуждение здесь.

источник

Администратор и суперпользователь

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

Суперпользователь

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

Администратор

Администратор в Ubuntu по умолчанию может по запросу делать всё то же самое, что и суперпользователь 2) , однако случайно что-то испортить из-под администратора нельзя, т.к. перед выполнением каждого опасного действия система спрашивает у пользователя-администратора его пароль. Вообще говоря, администратор является обычным пользователем, однако при необходимости он может вмешаться в работу системы, но для этого ему потребуется ввести свой пароль.

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

Теория теорией, но вам наверно интересно, как же это всё выглядит на практике? Давайте попробуем установить какую-нибудь программу. Запускаем Центр приложений Ubuntu (нажимаем на его значок в панели запуска). Ищем нужную программу либо через строку поиска, либо по категориям. Давайте установим Midnight Commander 3) . Набираем в стоке поиска mc, выбираем из списка нужную программу и нажимаем «Установить». Поскольку установка программного обеспечения — операция потенциально опасная, то, для ее выполнения, нужны права суперпользователя. О чем система вам незамедлительно сообщит:

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

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

Видите, вы не можете ничего изменить, поскольку поля добавления и удаления пользователей заблокированы. Однако в правом верхнем углу экрана находится кнопка «Разблокировать». Нажмите её, система снова спросит ваш пароль:

Читайте также:  Установка взрывного клапана на дымоходе

После ввода пароля, поле добавления пользователей стало активным:

Связки ключей

Есть ещё один интересный механизм, связанный с обеспечением безопасности. Дело в том, что для хранения различных пользовательских паролей в Ubuntu используются так называемые связки ключей (keyrings). Весь этот механизм служит одной цели — никто, кроме конкретного пользователя, не должен иметь доступа к пользовательским паролям. Связка ключей — это собственно зашифрованный контейнер для хранения паролей, для доступа к которому строго говоря тоже нужен пароль. Кстати, связки ключей не имеют ничего общего с административными правами. Они принадлежат конкретному пользователю и вообще не зависят от прав доступа к системным параметрам.

Вообще система связок ключей достаточно прозрачна и незаметна в использовании, однако иногда вы всё же можете на неё неожиданно наткнуться. Поэтому на всякий случай имейте ввиду: каждая связка ключей блокируется паролем, соответственно, только после его ввода можно разблокировать это связку и получить доступ к её содержимому. Однако среди всех связок ключей есть одна по умолчанию, которая разблокируется при входе в систему конкретного пользователя, соответственно, никаких дополнительных паролей вводить для доступа к ней не нужно. Обычно все приложения используют именно связку ключей по умолчанию (которая в Ubuntu называется login ), но иногда некоторые пытаются создать свою собственную. В этом случае вам сначала потребуется ввести пароль для новой связки, а потом нужно будет вводить его каждый раз, когда потребуется к ней доступ. Что не очень удобно. Поэтому если у вас какое-то приложение просит пароль для разблокирование связки ключей, то можете обратить внимание на дополнительные параметры в диалоге ввода пароля. Там будет галочка — разблокировать при входе в систему:

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

Для управления паролями и связками ключей, а так же ключами шифрования, в Ubuntu существует специальная утилита Пароли и ключи шифрования, называется она seahorse

Однако ещё раз повторюсь — в большинстве случаев вам не потребуется явно управлять паролями, за вас всё сделает система. Но иногда всё же знание механизма связок ключей оказывается полезным.

Что ж, надеюсь вы немного разобрались с тем, как управлять вашей новой системой. Если же всё вышеописанное показалось вам китайской грамотой, то запомните одну простую вещь: в Ubuntu у каждого пользователя есть только один пароль, и когда у вас система запрашивает авторизацию, всегда вводите именно его 4) . Если у вас будут права на доступ к запрашиваемому функционалу, то вы получите к нему доступ, если не будет — то не получите, всё просто. Никаких дополнительных паролей для доступа к каким-либо функциям системы в Ubuntu нет. Если вы так и не поняли смысла вводить один и тот же пароль несколько раз, то перечитайте эту статью с начала. А теперь пора отдать должное истории развития Linux и рассказать про основы использования терминала:

источник

Я админ в Ubuntu?

Ладно можете смеятся над моими похождениями по линуксам (только не громко). У меня вот какой вопрос: во время установки Ubuntu меня не спрашивали насчет пароля администратор, это получается, что я сейчас единственный пользователь-админ?

Добавлено через 2 минуты 35 секунд
Всё. Извените за тупой вопрос, я уже всё сделал.

когда устонавилваю убунту комп пишет что я не админ компа. а я админ. в чём дело?
когда устонавилваю убунту комп пишет что я не админ компа. а я админ. в чём дело?

VmWare. Хост Ubuntu клиент Ubuntu. add-apt-repository и gpu
Приветствую уважаемые. Есть в наличии виртуальная машина с установленной ubuntu 18.04 для целей.

Файловый/медиа/принт сервер на базе Ubuntu для windows,android,ubuntu
Всем доброго времени суток. Пришла идея сделать из старого десктопа сервер. AMD Sempron LE-1250.

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

RazorQ, в общем ты всё правильно описал, но попробую всё-таки своими словами

При установке у тебя создалось два пользователя: root и (назовём условно) razorq. При этом политика безопасности такая, что root по умолчанию заблокирован (т.е. чтобы совсем уж не шарящие люди случайно не зашли под root’ом и чего-нибудь важногоне снесли). При этом если ты наберёшь «id razorq», то напечатется список групп, в которой состояит пользователь, среди этих групп должна быть группа sudo — т.е. по сути дела тебе разрешено исполнять команду sudo, из-под которой можно исполнять практически всё с root’овыми правами. Но опять-таки из соображений безопасности сделано так, что ты всё это запускаешь не напрямую, а через sudo (который у тебя пароль спросит)

Добавлено через 51 секунду

# menu.lst — See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify ‘saved’ instead of a number. In this case, the default entry
# is the entry saved with the command ‘savedefault’.
# WARNING: If you are using dmraid do not use ‘savedefault’ or your
# array will desync and will not let you boot your system.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 10

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password [‘—md5’] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command ‘lock’
# e.g. password topsecret
# password —md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UU >
## default grub root device
## e.g. groot=(hd0,0)
# groot=3825fde5-0616-4279-a651-54c546b73cb1

## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(recovery) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all

## specify if running in Xen domU or have grub detect automatically
## update-grub will ignore non-xen kernels when running in domU and vice versa
## e.g. indomU=detect
## indomU=true
## indomU=false
# indomU=detect

## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

title Ubuntu 9.04, kernel 2.6.28-11-generic
uuid 3825fde5-0616-4279-a651-54c546b73cb1
kernel /boot/vmlinuz-2.6.28-11-generic root=UU > initrd /boot/initrd.img-2.6.28-11-generic
quiet

title Ubuntu 9.04, kernel 2.6.28-11-generic (recovery mode)
uuid 3825fde5-0616-4279-a651-54c546b73cb1
kernel /boot/vmlinuz-2.6.28-11-generic root=UU > initrd /boot/initrd.img-2.6.28-11-generic

title Ubuntu 9.04, memtest86+
uuid 3825fde5-0616-4279-a651-54c546b73cb1
kernel /boot/memtest86+.bin
quiet

### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root

# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional RU
rootnoverify (hd0,0)
savedefault
makeactive
chainloader +1

Windows не загружается если нажать на Microsoft Windows XP Professional RU

Добавлено через 8 минут 42 секунды
Вот какая ошибка появляется, если нажать на виндовс
Error 12: Invalid device requested

RazorQ,
При установке grub’а в блок начальной загрузки с помощью интерактивных команд, использовали ли вы также две нижеследующие команды?

grub> root (hd0,0)
grub> setup (hd0)

(hd0,0) — должен быть заменён на правильный номер вашего загрузочного раздела, а (hd0) — наименованием жёсткого диска, выбранного вами для установки. Помните, что (hd0) установит загрузчик в главную загрузочную запись первого жёсткого диска, the primary master.

Как-то сложилось по жизни, что для работы на PC мне всегда требовалось более одной операционной системы. Архитектура компьютера такую мультизагрузку вполне допускает, я программист, так что особых проблем у меня никогда не было. В тех же случаях, когда подобная мультизагрузка требовалась кому-то еще, я рекомендовал xboot Ильи Евсеева. С приходом Peniium II инсталлятор xboot пришлось слегка подправить по поводу run-time error 202 (ну, не предполагали разработчики TurboPascal, что так быстро все случится).

Познакомившись года четыре назад с Linux, я узнал, что, кроме загрузки первичных разделов (реальных или виртуальных), загружать можно и ядра операционных систем. Причем этих уже может быть сколько угодно: существующее ограничение на количество первичных разделов значения в данном случае не имеет. Дальше — больше. Оказывается, существует спецификация множественной загрузки (multi-boot specification), и если бы производители ОС ее придерживались, то мультизагрузка могла бы стать функцией BIOS, например. Но это из области фантазий. Пока, во всяком случае.

Читайте также:  Установка контактное зажигание уаз 469

Постепенно примкнув к лагерю сторонников ПО с открытым исходным кодом (и в соответствии с принципами этого лагеря), я несколько раз делился опытом на виртуальных страницах Сети. И вот что интересно: больше всего вопросов задали мне в связи с моим вариантом описания мультизагрузчика GRUB (GRand Unified Boolloader). Причем спрашивали не собратья линуксоиды. а именно пользователи ОС от Microsoft. К сожалению, мои советы по поводу использования GRUB помогали им не так уж часто. И не потому, что этот мультизагрузчик плох, отнюдь, а потому, что, кроме возможности загружать уже существующие на винчестере ОС уважаемым корреспондентам требовалась еще и возможность создавать сосуществующие ОС от Microsoft на одном и том же винчестере. А вот это в прямые функции GRUB никак не входит. Сам же производитель такую возможность пользователям не предоставляет: ну, не могли разработчики предположить такого чтобы для одного компьютера несколько ОС покупалось. Апгрейд со скидкой предположили, а две версии одной ОС, но разной скажем, локализации — нет. Или просто две одинаковых: одну — сынишке-геймеру. другую -себе для работы.

Сожаление мое (а может, раздражение из-за необходимости повторять одну и ту же информацию, с каждым разом кажущуюся все более банальной) постепенно достигло определенного уровня, когда я решил предпринять еще одну попытку разъяснения всем желающим возможности использования на одном PC нескольких операционных систем производства Microsoft. «Еще одну» потому, что документация к любому мультизагрузчику предпринимает такую попытку в обязательном порядке, жаль только мало кто эту документацию читает, если судить по отзывам на эти самые мультизагрузчики. А Microsoft — потому, что ОС unix-клона и так предоставляют все необходимые для мультизагрузки средства, да и пользователи их в большинстве своем, лучше представляют себе организацию данных на винчестере. И не обязательно из-за повышенной грамотности — по необходимости, быть может

Итак, оставим в стороне multiboot specification и даже vmlinuz (традиционное название ядра Linux), просто добьемся существования на одном винчестере двух-трех непритязательных ОС: DOS и Windows 9х. Для решения этой задачи потребуются некоторые знания и инструментарий. И то и другое — в минимальном количестве. В стиле Microsoft, так сказать. Дабы пользователь не утомился.

Что касается знаний, то без них. к сожалению, не обойтись: слишком скудны средства, которыми располагает персональный компьютер в момент загрузки. Поэтому и рассчитывать на исчерпывающе-содержательный интерфейс мультизагрузчиков не приходится. Если система не грузится, то некому поведать языком интуитивно-понятного интерфейса, почему это случилось. Приходится рассчитывать на аскетическое ПО, размещающееся. как правило, на дискете, и на собственные знания. Минимальный набор знании, необходимых для осуществления самостоятельных осмысленных операций над разделами диска PC, укладывается в сравнительно небольшое число постулатов.

Загрузка PC всегда начинается с переноса в память содержимого нулевого блока загрузочного устройства (HDD, FDD, CDROM -как уж в BIOS Setup задано) и передачи на него управления. Размер блока — всего 512 байт, и для всех устройств, кроме HDD, ничего кроме инструкций загрузки следующей порции кода, в нем не содержится

HDD же, по замыслу создателей PC, может иметь несколько загружаемых разделов, поэтому часть главной загрузочной записи (master boot record — MBR), как уважительно назвали нулевой блок винчестера, отведена под таблицу разделов (Partition Table).

Таблица эта содержит описание не более, чем четырех первичных (primary) разделов, причем только один из них может быть расширенным (extended), в котором, в свою очередь, могут содержаться свои разделы. Эти последние, в отличие от первичных, называются логическими Число логических разделов не ограничено.

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

0х04 — FAT16, объемом менее 504 Мб:

0х05 — расширенный раздел, заканчивающийся ниже 8 Гб;

0х06 — FAT16, объемом менее 2 Гб. заканчивающийся ниже 8 Гб;

0х0B — FAT32, заканчивающийся ниже 8 Гб;

0х0С — FAT32, заканчивающийся выше 8 Гб (как 0х0B, но только для LBA):

0х0Е — FAT16. объемом менее 2 Гб, заканчивающийся выше 8 Гб (как 0х06, но для LBA)

0х0F — расширенный раздел, объемом, более 8 Гб или заканчивающийся выше 8 Гб (как 0х05, но для LBA);

0хFF — таблица дефектных блоков Xenix.

Типы 0х0В . 0х0F в настоящее время преобладающие, как преобладающий способ адресации блоков диска — LBA. Тип «таблица дефектных блоков Xenix» используется дня маскировки разделов, а зачем такая маскировка нужна, станет ясно чуть позднее. Прибавление 0x10 к идентификатору типа раздела делает его скрытым (hidden). Правда, на эту скрытость Microsoft перестала обращать внимание, начиная с системы Windows 2000.

Исполняемый код MBR, в отличие от таблицы разделов, не стандартизирован, и разные ОС относятся к нему по-разному: некоторые при инсталляции переспрашивают, можно ли перезаписать MBR а некоторые — нет. Младшие Windows — нет. Спасибо хоть таблицу разделов не затирают. Отсюда вывод: MBR нужно уметь сохранять, восстанавливать, а лучше — формировать заново.

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

— ОС загружается начальным загрузчиком, записанным в нулевой блок первичного раздела, в который инсталлировалась ОС (в отличие от MBR, он уже не «master», а просто «boot record»);

— начальный загрузчик записывается ОС при инсталляции;

— начальный загрузчик, в свою очередь, загружается главным загрузчиком (тем, что записан в MBR);

— код главного загрузчика записываемый в MBR ОС Microsoft бесхитростен: найти в таблице разделов первый из загружаемых первичных, считать в память его начальный загрузчик и передать на него управление;

— ну, а главный загрузчик, если помните, считывается в память самим BIOS.

В случае с NT в результате описанных выше действии запускается не ОС, a NTLoader — собственный мультизагрузчик NТ.

Действия над MBR, выполняемый ОС при инсталляции (в том случае, если MBR все-таки переписывается, разумеется), таковы:

— переписать исполняемый код MBR;

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

В принципе, из вышеизложенного уже можно догадаться что нужно сделать для достижения поставленной задачи:

— инсталлировать первую систему, не занимая ею все дисковое пространство, разумеется,

— «маскировать» вышеупомянутую систему;

— инсталлировать вторую систему (при желании, таким же образом — третью):

— «демаскировать» все установленные системы;

— инсталлировать мультизагрузчик GRUB.

Теперь осталось выяснить, как конкретно это сделать. Переходим к инструментарию. Существует довольно много программ с помощью которых можно редактировать MBR и. в частности, таблицу разделов. Болыиинству пользователей MS Windows наверняка известен Norton Disk Doctor, доживший уже до девятой, если память не изменяет, версии. Список известных мультизатрузчиков тоже не так уж мал. А вот продукт, достаточный сам по себе для решения поставленной задачи, известен мне только один. Это GRUB — GRand Unified Boolloader.

Изначально автор — Ench Boleyn, а в настоящее время проект развивается как часть GNU — известного бастиона Open Source. Именно на сайте этой уважаемой организации находится страничка GRUB: www gnu.org/software/grub, а на ее FTP-сервере всегда можно скачать последнюю версию пакета.

GRUB, безусловно, достоин oтдельного разговора, но для наших минималистских целей достаточно будет рассказать о пяти-шести из почти шести десятков его команд, да простят меня авторы. Приверженцам Microsoft я даже скачивать дистрибутив GRUB не рекомендую: проще воспользоваться его загрузочной дискетой, подготовленной мной специально для них в формате FAT (подобная дискета входит и в состав дистрибутива, только файлов на ней, не имеющих отношения к ОС от Microsoft, много больше и прочить ее под DOS/Windows затруднительно). Архивированный образ дискеты лежит здесь: www.ldc.net/

popov/GrubOnFAT.zip, — а получить из образа дискету можно с помощью замечательной программы rawrite. которую, пользуясь случаем, я настоятельно всем рекомендую. Размер архива очень скромный — чуть более пятидесяти килобайт. Приступим!

Описание инсталляции ОС пропустим: разные они, да и не об этом речь. Замечу только, что первичный раздел для устанавливаемой ОС лучше готовить ее же средствами, практически никаких шансов ошибиться Поскольку, по мнению fdisk от Microsoft (а именно он разбивает диск на разделы), первичный (primary) раздел может быть только один то придется с этим для начала согласиться. Размер раздела выберите минимально достаточным. Расширенный раздел можно пока не создавать

Убедившись в работоспособности первой инсталлированной системы, загрузимся с дискеты GRUB. Если дискета оригинальная, то вы сразу попадете в командный режим (на зто укажет подсказка «grub>»), а если воспользовались моим предложением, то на экране появится меню загрузки. С меню разберемся позднее, а для перехода в командный режим нужно нажать «с», о чем, кстати, напоминает и присутствующая на экране подсказка. Набираем:

где подразумевает нажатие клавиши табуляции.

В ответ на это вы получаете варианты продолжения команды. Если у вас только один винчестер, то вариантов будет всего два: fd0 и hd0. Отмечаем: так называются и нумеруются (с нуля!) в GRUB дисковые устройства. Продолжим набор в соответствии с нашим планом:

Теперь вы получаете перечень разделов диска, выбор из которых возможен. Поскольку раздел у нас пока один, то и в перечне только одна позиция Нажимаем

Esc, поскольку продолжать команду не нужно, все проделанное было нужно лишь для того, чтобы, заставляя GRUB выполнять автозаполнение команды, выудить у неё информацию о разделах. Что и достигнуто. Запоминаем (лучше — записываем), что первая ОС инсталлирована в разделе (hd0.0) и тип ее — 0х0b), например (у вас, разумеется может быть другой).

Переходим к следующему пункту.

«Маскируем» первую систему командой:

Зто уже нормальная команда и завершать ее нужно вводом .

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

Инсталлируем следующую систему Инсталлятор, конечно, обнаружит на диске некоторый «Nоn-DOS partition», но препятствием к инсталляции это не будет. Хорошо также и то, что инсталлируемая ОС никак не модифицирует чужой раздел, спасибо Microsoft хоть за это. Все рекомендации аналогичны приведенным для первой инсталляции.

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

Читайте также:  Установка расширительного бачка мембранного типа

Теперь разделы можно «демаскировать». Быть может, это и лишнее, но напомню, что делается это командой:

где n — номер демаскируемого раздела, а 0хNN — действительный тип его файловой системы (я надеюсь, вы еще не потеряли бумажку с записями об этом).

Нетрудно догадаться, что после «демаскирования» грузиться будет всегда система, инсталлированная последней. Большего от кода в MBR добиться не удастся, пора переходить к подготовке мультизагрузки.

У GRUB есть одно достоинство — меню допустимых загрузок и их алгоритмы хранятся в обычном текстовом файле. Это безусловно, достоинство поскольку позволяет изменять загрузку, модифицируя всего лишь один очень небольшой текстовый файл, но, как и многие достоинства, это тоже имеет свою оборотную сторону. Состоит эта сторона в том, что этот самый файл должен находиться в разделе, файловую систему которого умеет читать GRUB. Список читаемых файловых систем довольно обширен, да вот только NTFS в него не входит. Отсюда вывод: все нужное для GRUB нужно размещать в разделе FAT. Надеюсь, хоть один такой у вас имеется. Создаем в его корневом каталоге подкаталог boot/grub (не обращайте внимания на «косые»: GRUB не обращает внимания на то, прямые они или обратные, — и мы не будем) и переписываем в него файлы из аналогичного подкаталога дискеты. Заметьте, на котором из разделов находится этот подкаталог

Опять загружаемся с дискеты GRUB (хорошо что времени на это требуется заметно меньше, чем для загрузки, скажем, DOS) и выполняем следующие команды:

— где n — номер раздела, в котором находится подкаталог boot/grub.

Если у вас современный винчестер, то почти наверняка GRUB сохранил весь необходимый ему для работы код в блоках нулевой дорожки, соседствующих с MBR (нулевая дорожка не используется операционными системами). Если сообщение об этом появилось на экране во время выполнения команды setup то все файлы подкаталога boot/grub можно теперь удалить. В том числе, menu.lst, если при загрузке вы предпочитаете командный режим. Если же вы предпочитаете меню, то упомянутый файл нужно оставить. И перейдем к анализу его содержимого на примере menu.1st с предложенной вам дискеты. Вообще-то, файл этот достаточно прокомментирован. И даже для удобства приверженцев Microsoft — в кодировке СР-1251. Но некоторые пояснения, быть может, и не помешают. Вот команды установочной сессии:

timeout 10 — задается число секунд, после которого стартует загрузка по умолчанию, нажатие на любую клавишу прерывает отсчет. С этого момента само собой ничего не произойдет — GRUB ожидает команды или выбора позиции меню;

color ligt-gray/blue black/ligt-gray -задаются цвета меню: цвет символов / фона для не выбранной и выбранной позиций меню;

default 0 -задается та самая позиция меню по умолчанию. Позиции меню, как можно заметить, тоже нумеруются с нуля. Приведенная строка, кстати, смысла не имеет: в ее отсутствие именно нулевая позиция меню и считается позицией по умолчанию;

title menu item — всегда начинает описание варианта загрузки. Текст после title станет текстом соответствующей позиции меню.

Все ОС Microsoft загружаются следующими командами:

где m — номер диска, n — номер раздела. Оба нумеруются с нуля.

Испытываю искушение начать описывать реальный смысл приведенных команд. Но «наступаю на горло собственной песне поскольку отдаю себе отчет в том, что среднестатистическому пользователю MS Windows это ни к чему, а я, в свою очередь, обещал не обременять его излишними знаниями. Опять же — в стиле Microsoft.

Отредактировав menu.1st вы получаете законченную систему с мультизагрузкой. Поздравляю. Приведенные ниже советы можно прочитать «чисто из любопытства» или в том случае, если вы столкнетесь с проблемой, для разрешения которой знаний у вас окажется недостаточно. Можно рассматривать их и как мини-FAQ. Итак.

Не потеряйте дискету GRUB. Ваш menu.1st никуда не денется, если только вы сами его ненароком не уничтожите, а вот исполняемый код MBR (который в настоящий момент представляет собой ни что иное, как stage1GRUB) рано или поздно будет уничтожен очередной реинсталляцией продукта Microsoft. К счастью, установка мультизагрузчика отнимает не более минуты, вот только дискета GRUB при этом — обязательное условие.

Когда разделов на вашем диске станет много, их таблица, выводимая GRUB, как автозаполнение команды root, не должна ввести вас в заблуждение множеством разделов типа 0х0В или 0хОС. Все разделы с номерами старше трех — логические, и хотя типы их такие же, как у разделов первичных, загружаться они не могут. По крайней мере пока вы не начнете использовать не Microsoft Windows.

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

Имея несколько разделов, вам, возможно, захочется один из них использовать в качестве «подопытного» — того, на котором можно опробовать «сомнительное» ПО. Результатом таких проб и ошибок часто становится крах системы. Сохраните заблаговременно образ «свежеинсталлированнной» системы (Ghost от Symantec или DriveImage от PowerQwest — вполне подходящие для этого средства) — пригодится.

Существует «туповатый» аналог команды root — rootnoverify. Разница между ними в том, что rootnoverify не проверяет так называемую «сигнатуру» — последние два байта загрузчика раздела (boot loader), которые всегда должны быть равны 0х55 0хАА. Мне, признаться, не встречались исправные загрузчики с неверной сигнатурой, но, может быть, вам повезет больше.

Разделы можно «скрывать» (hide), устанавливая четвертый бит в байте типа системы (тот самый, который Microsoft игнорирует, начиная от Windows 2000). Вставив, например, в некоторую секцию загрузки команды

— мы «скроем» при ее загрузке вторые разделы первого и второго дисков и напротив, «откроем» первый раздел первого диска.

Ни одна ОС от Microsoft кроме NT не может быть загружена со второго диска. Нужно выходить в BIOS Setup, менять устройство загрузки и т д. GRUB предоставляет альтернативу. Команды:

— загрузят ОС из первого раздела второго диска.

Обратите внимание, что команды map «меняют местами» диски даже в представлении GRUB: второй диск становится после их выполнения hd0, a нe hd1. Так же, собственно, поступает и BIOS.

Символьные имена дисковых устройств, доставшиеся современным ОС от Microsoft «по наследству» от MS DOS, приносят подчас немало неудобств. И дело, конечно, не в том, буквами или цифрами обозначать логические устройства, а в том детерминирована ли связь между наименованием логического устройства и его физической сущностью. У Microsoft — нет. Сами то они «буковки» эти не шибко «жалуют» — загляните хотя бы в NT-шный boot.ini: нумерация дисков и разделов вполне очевидна. Но для пользователя. Наблюдали ли вы изменение порядка именования устройств при подключении второго диска или изменении структуры разделов? Вот об этом-то и идет речь. Как будто второй логический раздел расширенного раздела первого диска изменился после подключения второю диска Явно нет, но называется теперь иначе. Для борьбы с этим явлением рекомендуем задавать в BIOS второй, подключаемый диск как «отсутствующий» (not installed) Система все равно обнаружит его, но уже на более позднем этапе, и «буковки» присвоит его разделам следующие за «буковками» , занятыми разделами первого диска

С NT — получше. Имена разделам можно присваивать самому, а в последних версиях уже появилась возможность монтирования а-ля unix. Когда новое устройство становится как бы частью уже существующего дерева каталогов — и никаких «буковок». Но.. Все это не относится к разделу системному — тому, на котором сама NТ инсталлирована. А потребность такая не исключена. Реинсталляция NT после переноса на другой диск или инсталляция «поверх» (с целью спасти нужные файлы не ко времени рухнувшей системы) с высокой долей вероятности дадут вам новое имя системного раздела. А это неудобно, принимал во внимание количество ссылок в реестре на имя старое. Тут уж придется действовать «отмычкой»: с помощью regedit.

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

Первичные разделы и логические разделы расширенного раздела нумеруются в порядке создания, а не в соответствии с их физическим расположением. Это одно и то же, но только до первого удаления уже существующего раздела (а кто помешает нам это сделать?). Можно бы об этом и не задумываться, но некоторое ПО почему-то настойчиво предлагает ренумеровать разделы в соответствии с их физическим порядком, а некоторое — просто выполняет «ренумерацию», даже не проинформировав об этом пользователя. Полагаю, не нужно объяснять, что номера разделов в menu.1st после этого могут указывать уже не туда, куда следует. Придется вспомнить о командном режиме, определении действительных типов файловых систем, после чего отредактировать menu.1st.

Все описанные операции над таблицей разделов не касались изменения размеров разделов существующих. И это естественно; GRUB не предлагает такой возможности, да и знаний тут требуется побольше. Если же вам когда-нибудь все-таки придется вручную модифицировать эти размеры (восстанавливая MBR после CIH-атаки, например), то помните, что в таблице они задаются двумя способами — старым, с указанием значений номеров цилиндра, головки и сектора для начала и конца раздела (CHS), и новым — с указанием логического номера стартового блока раздела и его длины в блоках Нетрудно догадаться, что второй является одновременно и единственно правильным для LBA (Logical Block Addressing) режима Для разделов, физические параметры которых уже невозможно опиcaть формулой «цилиндр — головка — сектор» (места, отведенного в свое время создателями PC для хранения этих данных, просто недостаточно для описания параметров современных винчестеров), поля CHS все же заполняются, указывая, обычно, на близкий к максимально адресуемому в рамках CHS.

Разумеется, описанный способ создания системы с мульти-загрузкой — не единственный. Лет пять назад устав от необходимости несколько раз запускать Disk Editor, пока подготавливаемый к продаже компьютер не обретет запрошенную мультисистемность я написал четыре крошечные утилитки для сохранения и восстановления MBR, а также для просмотра и модификации пресловутых четырех пар байт таблицы разделов Используя возможности создания меню средствами confg.sys и autoexec.bat, loadlin (для загрузки Linux из-под DOS) и эти самые утилитки, также вполне можно было создать мультизагрузочную систему. Вывод: важнее все-таки знать, что нужно делать, а средства осуществления найдутся

Вот, собственно и все о моем любимом мультизагрузчике в варианте изложения для приверженцев MS Windows. Побольше любопытства, хладнокровия при операциях на MBR и — успехов!

источник

Добавить комментарий

Adblock
detector