CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
26.06.2016

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Заметки

Grub FAQ

См. также статью В.Попова GRUB - GRand мира загрузчиков

Q. Средства ограничения доступа в GRUB.

A. Для ограничения доступа в GRUB в конфигурационном файле могут быть применены следующие команды:

  1. строка
    	password PASSWORD
    	
    позволит только выбирать позиции меню. Редактирование и командный режим будут блокированы, пока не будет нажата клавиша < p > и введён правильный PASSWORD. Здесь PASSWORD - буквально желаемый пароль;
  2. строка
    	password --md5 PASSWORD
    	
    делает то же самое, но PASSWORD, в данном случае - кодированное значение, полученное из "человеческого" пароля командой:
    	grub> md5crypt
    	Password: **********
    	Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb
    	
    эту самую encrypted-строку и надо подставлять в конфигурационный файл. Водить же, когда спросят, разумеется - действительный пароль;
  3. строка
    	password PASSWORD file
    	
    после введения правильного пароля загрузит file в качестве конфигурационного;
  4. после команды title можно ставить команду lock - пароль тогда будет запрашиваться при выборе этой позиции меню (команда password, разумеется, должна в этом случае присутствовать в общей секции). Вместо lock можно ставить и password, что даёт возможность иметь разные пароли для разных вариантов загрузки.

Q. Как сохранить раздел Windows 2000?

A. Копирование Windows 2000 в виде образа (и последующее восстановление) противоречат соображениям безопасности (как их трактует MicroSoft). Результат их борьбы выглядит как невозможность загрузки восстановленной системы.
А нужно так:

  1. На инсталляционном диске Windows 2000 в архиве \SUPPORT\TOOLS\DEPLOY.CAB имеется утилитка sysprep.exe;
  2. Находясь в win'2000, её и нужно запустить перед созданием образа. В результате в системе будут аннулированы так называемые CID - идентификаторы: при очередной загрузке скопированной системы потребуется опять ввести регистрационный код - и всё восстановится "на круги своя";
  3. Образ нужно создавать, загрузившись с дискеты или раздела win'98 (если он существует, разумеется);
  4. После загрузки восстановленного образа также потребуется ввести регистрационный код.

Q. Зачем нужна метка активности раздела?

A. GRUB - не нужна, старому загрузчику от MicroSoft - нужна, её же проверяют инсталляторы MicroSoft, даже современные. В общем, логической потребности нет, но архитектурный замысел со времён рождения IBM PC не менялся... Получается: хочешь - пользуйся, не хочешь: не пользуйся.

Q. Что такое stage1?

A. В общем - фаза загрузки, выполняемая сразу после передачи управления из BIOS. Файл, длиной всегда 512 байт - по размеру загрузочного блока. Именно содержимое этого блока BIOS, собственно, только и загружает в память в соответствии всё с тем же архитектурным замыслом.

Q. Что значит, "разделы нумеруются в порядке создания"? Неужели в patrtition table записывается номер раздела?

A. Первичные разделы в partition table не нумеруются, но следуют друг за другом в определённом порядке. Этот порядок и можно пронумеровать. Linux и GRUB так и делают. Тем более, это справедливо для логических разделов, единой таблицы которых не существует, и каждый новый раздел адресуется предыдущим. С другой стороны, разделы физически расположены на диске в некотором порядке: от младших дорожек - к старшим. Поэтому, для Linux и GRUB возможна ситуация, когда hda3 (hd0,2) физически расположен на младших дорожках относительно, например, hda2 (hd0,1). Linux-овый fdisk характеризует такую ситуацию как "неверный порядок следования разделов" и предлагает её исправить. А бывает soft , который "исправляет" partition table не запрашивая согласия пользователя. Нетрудно догадаться, что после такого исправления и Linux, и GRUB будут неправильно адресоваться к разделам.

Q. Как получить новый GRUB на FAT-дискете?

A. Довольно просто:

  1. скачать свежий GRUB из Сети (можно только файл - образ загружаемой дискеты);
  2. сделать из этого образа загружаемую дискету (в Linux или с помощью rawwrite);
  3. на чистой DOS-дискете создать каталог \boot\grub и перенести в него с новой GRUB-дискеты файлы stage1, stage2 и stage1_5 (эти - только для требуемых файловых систем, fat - само собой). Как это сделать (переносить файлы с GRUB-дискеты (файловая система ext2) на DOS-дискету (файловая система fat) - очевидно для пользователя Linux, но невозможно для пользователя MS Windows. Единственная для него возможность: воспользоваться ПО "третьих" производителей, которое бы обеспечивало чтение с дискеты ext2;
  4. загрузиться с GRUB-дискеты, вместо неё поставить DOS-дискету, выполнить:
    	root (fd0)
    	setup (fd0)
    	

Q. Когда я удаляю всё из /boot/grub, кроме menu.lst, grub грузится не хочет...

A. Да, здесь в тексте статьи допущена явная ошибка, в чём автор сознаётся и искренне раскаивается. И для полной ясности в этом вопросе придётся принять во внимание следующее:

"нулевая" дорожка, которой безбоязненно можно воспользоваться для размещения необходимого для загрузки кода имеет объём, равный количеству секторов на ней. Это число не может быть более 255. То есть: вмещает не более 128к. Казалось бы: вполне можно разместить всё необходимое для GRUB . И это - правда для тех винчестеров, количество секторов которых равно 255-ти. Однако... XXI-й век на дворе. И винчестера нынче эксплуатируются в LBA-моде, для которой число секторов принимается равным 63-м. То есть stage1, разумеется, поместится, stage1_5 и menu.lst, при желании - тоже, а вот для stage2 места "маловато будет"...

Поэтому-то setup (а это, как известно, скрипт, а не встроенная команда) сначала с помощью команды embed записывает в начальные блоки диска (начиная с первого) stage1_5, соответствующую той файловой системе, на которой GRUB обнаружил stage1, stage2 и menu.lst. Именно stage1_5 даёт возможность GRUB считать всё остальное, нужное для продолжения загрузки.

После этого setup выполняет команду install. Например:

install /grub/stage1 (hd0) (hd0)1+16 p (hd0,4)/grub/stage2 /grub/menu.lst

которая записывает на устройство (hd0), начиная с нулевого блока stage1 , а затем - перечень блоков (blocklist), которые нужно загрузить во вторую очередь: (hd0)1+16, то есть, фактически - stage1_5.

Опция p (от patch) заставляет install занести в первый из блоков stage1_5 информацию о местонахождении следующего в командной строке файла (а это - stage2), а наличие в командной строке ещё одного файла заставляет, в свою очередь, занести в stage2 данные о местонахождении конфигурационного файла menu.lst. Такая вот "связочка" получается...

Осталось выяснить: можно ли всё-таки уничтожить содержимое /boot/grub? Уничтожить, очевидно, - нет. Но скрыть "от дурного глаза" - можно. Для этого нужно помнить следующее:

  • команда install понимает под файлом как его имя, так и blocklist. То есть: и stage2, и menu.lst могут находиться в любых блоках винчестера. В том числе - и не принадлежащих ни одному из разделов;
  • универсальным инструментом помещения содержимого любого файла в любые блоки в Linux служит команда dd, для которой выходным файлом назначается диск: of=/dev/hda, номер первого блока задаётся, как seek=nnn, а количество блоков, как count=mmm;
  • количество блоков (и их местонахождение, хоть оно нас особенно и не интересует) для любого файла можно получить с использованием команды GRUB:
    	grub>blocklist FILE
    	

Всё вышесказанное относится, безусловно, только к системам семейства *NIX и предполагает определённый уровень знакомства с вычислительной техникой. Нельзя так же сказать, что "спрятывание" содержимого /boot/grub исключительно полезно: даже 100% уверенность в сохранности stage2 и menu.lst не спасёт MBR от вируса, или "бесцеремонного" поведения инсталляторов MS Windows. Проще, всё-таки, иметь всё необходимое для восстановления GRUB на дискете, загружаемом CD ROM или flash-модуле.

Q. Можно ли из меню GRUB загрузиться с CD-ROM?

A. Средствами исключительно GRUB - нет, но "мир не без добрых людей". Существует мультизагрузчик, не такой многофункциональный, как GRUB, но, зато, умеющий грузить систему с CD ROM, даже если BIOS такой возможности не предоставляет.

Называется - Smart Boot Manager и свободно доступен по адресу: http://btmgr.sourceforge.net/. Размер очень скромный - около 100кб, но запускать-то его нужно с дискеты... А вот это преодолевается добавлением в меню следующих строк:
title SmartBootMngr
kernel /boot/grub/memdisk floppy
initrd /boot/grub/sbootmgr.dsk

Здесь: memdisk - "крохотный" файлик из пакета Питера Анвина syslinux, floppy - опция для него, предупреждающая, что загружаемый файл - образ дискеты, а sbootmgr.dsk - этот самый образ загружаемой дискеты из Smart Boot Manager.

Q. Можно ли MS Windows загрузить из логического раздела?

A. Конечно - можно. Точно так же, как и из первичного. Вопрос в том, как в этом логическом разделе MS Windows получить. Инсталлироваться куда-либо, кроме разделов первичных, ОС семейства Win9x просто отказываются, а NT - соглашаются, если у них есть возможность поставить в одном из первичных разделов собственный загрузчик NT Loader (ntldr). А вот если инсталлированную в первичный раздел Win9x, сохранить в виде образа (с помошью Norton Ghost, например), а потом этот образ "восстановить" в логическом разделе, то работать - будет.




Комментарии

аноним, Mon May 25 00:46:17 2009:
egor, понедельник, 25 мая 2009 г. 00:15:51:
у меня стоит убунту и я решил поставить еще и альт линукс. установка прошла без ошибок, но граб не видит новой ОС. Как решить эту проблему?

похоже ты поставил загрузчик не в мбр а в корень
DdShurick, Sun May 24 23:38:59 2009:
# linux installation on /dev/sda5.
title ALTLinux (on /dev/sda5)
root (hd0,4)
kernel /boot/vmlinuz root=/dev/hda5
initrd /boot/initrd.img

Номер раздела поставьте свой.
анонимный аноним, Sun May 24 21:55:45 2009:
>у меня стоит убунту и я решил поставить еще и альт линукс. установка прошла без ошибок, но граб не видит новой ОС. Как решить эту проблему?

Это решается просто. Поставьте винду. Ха-ха. Шутка.
egor, Sun May 24 17:36:32 2009:
у меня стоит убунту и я решил поставить еще и альт линукс. установка прошла без ошибок, но граб не видит новой ОС. Как решить эту проблему?
Алексей Федорчук, Sat May 10 11:05:25 2008:
2 аноним, суббота, 10 мая 2008 г. 10:10:55:
> мы все тут такие АНОНИМЫ)
___
Пора учреждать Клуб знаменитых анонимов.
Председателем пригласить покойного Ролана Быкова.
И гимн сочинить типа

... чей-то флейм звенит
Все мы анонимы, каждый знаменит
аноним, Sat May 10 10:10:55 2008:
мы все тут такие АНОНИМЫ)
аноним, Thu Nov 15 21:53:40 2007:
2 аноним, четверг, 15 ноября 2007 г. 12:48:10:

ПОДРОБНОСТИ?
аноним, Thu Nov 15 12:48:10 2007:
Господа, подскажите, не могу установить XP, копирует файлы с диска, а потом пишет GRUD, что делать ненаю, хэлп!!!

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds