Grub 2 - settings

Автор krserv, 25 апреля 2014, 01:02:15

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

krserv

Debian 7.4 x86; I have a multi-loading system with Linux and Windows 7, but I don't want to see menu on the screen, but have possibility to choose one of the system during boot. Can I do so?
Also I'd like to rename Windows 7 to another name, for instance - "Old testing system" etc.

интересует возможность в мультизагрузочной системе, где установлен linux и Windows 7 - скрыть наличие установленной  Windows 7. Т.е чтобы в меню загрузки она не отражалась, но чтобы хозяин компьютера знал секретное сочетание клавиш, позволяющее загрузиться компьютеру под Windows. Запуск путем выполнения нескольких комманд не подходит. 
Или если это сделать не возможно, то как можно переименовать заглавие в меню загрузки например - Windows 7 на "Тестовая версия Moй Linux"

vladimir_ar

#1
В гугле когда то находил и делал. И скрытие, и установку пунктов меню под пароль. И на форуме решение оставлял - не помню где.
Нашел у себя в сохраненном - сайта в сети уже нет.

Сообщение объединено: 24 Апрель 2014, 23:17:46

Ставим пароль на загрузку Windows XP в GRUB2.

Ставим пароль на загрузку Windows XP в GRUB2.

22:53 | Руководства Автор: Damir
Задача: необходимо ограничить доступ к загрузки ОС Windows XP, установленной второй системой к Ubuntu Linux 10.10 (дистрибутив может быть любым, главное чтоб загрузчик совпадал).
Сначала необходимо получить хеш пароля при помощи утилиты grub-mkpasswd-pbkdf2:
$ grub-mkpasswd-pbkdf2
Enter password: ********
Reenter password: ********
Your PBKDF2 is grub.pbkdf2.sha512.10000.ADA06E9D04D86053296B7B8614D7E1C32BAD55A76AD37F1228193C3B53FBD
116BD9BC7ED9F85890DCEA5BA597AA5273898C10355C0CE414994959E5315404E2E.0818FF69803AE785C5842FCD3B7
319E8E4E9A83665616C07ADA188F33DCF713C587E9F66781785326711A2786D4249249AAE32C66B2BAEBEEFD098DF67
E74F59


Запись типа:
«grub.pbkdf2.sha512.10000.ADA06E9D04D86053296B7B8614D7E1C32BAD55A76AD37F1228193C3B53FBD116BD9BC7E

D9F85890DCEA5BA597AA5273898C10355C0CE414994959E5315404E2E.0818FF69803AE785C5842FCD3B7319E8E4E9A8
3665616C07ADA188F33DCF713C587E9F66781785326711A2786D4249249AAE32C66B2BAEBEEFD098DF67E74F59 »
и есть наш зашифрованный пароль.
Далее создаем файл конфигурации паролей, и редактируем его в своем любимом текстовом редакторе до следующего вида:

$ sudo touch /etc/grub.d/05_password
[sudo] password for damir:
# sudo vi /etc/grub.d/05_password
echo "Setting password protection..." >&2
cat << EOF
set superusers="admin"
password_pbkdf2 admin grub.pbkdf2.sha512.10000.ADA06E9D04D86053296B7B8614D7E1C32BAD55A76A
D37F1228193C3B53FBD116BD9BC7ED9F85890DCEA5BA597AA5273898C10355C0CE414994959E5315404E2E.08
18FF69803AE785C5842FCD3B7319E8E4E9A83665616C07ADA188F33DCF713C587E9F66781785326711A2786D4
249249AAE32C66B2BAEBEEFD098DF67E74F59
password_pbkdf2 damir grub.pbkdf2.sha512.10000.F9F491F196D488403B3C1A5FE76608F02DE651DEDF
779A8FD32C75EC152222723173B16B9E6B91B83040E19F89C5D49CCD26A1726DD08AAB9CC74F1AD7C1B21D.6
EBB33BA773CBFB57CE85A567D1B758336896B055D9F17EDB9914A0DC3296B34A3678278B568A069E0C24BAD
61E2043F8F974067A44D1E97D84056770C8275CF
EOF

Немного поясню конфиг: $ echo «Setting password protection...» >&2 - это комментарий для наглядности, будет выводиться при обновлении grub, set superusers=»admin» – задаем имя супер пользователю, он сможет редактировать любые пункты меню, дальше идет строка отвечающая за самого пользователя, обратите внимание строка одна (password_pbkdf2 admigrub.pbkdf2.sha512.10000.ADA06E9D04D86053296B7B8614D7E1C32BAD55A76AD37F1
228193C3B53FBD116BD9BC7ED9F85890DCEA5BA597AA5273898C10355C0CE414994959E5315404E2E.0818FF698
03AE785C5842FCD3B7319E8E4E9A83665616C07ADA188F33DCF713C587E9F66781785326711A2786D4249249AAE32
C66B2BAEBEEFD098DF67E74F59 ), хоть она и написана в несколько строчек – это  крайне важно. Я задал два пользователя admin и damir, их можно сделать и больше если в этом есть необходимость, соответственно для каждого создавать свой хеш пароля, так как мы это сделали в самом начале.
Уберем право на чтение файла с паролем для посторонних, и добавим необходимых прав:

$ sudo chmod u+x,go-rw /etc/grub.d/05_password

И обновим конфиг GRUB 2:

$ sudo update-grub
Generating grub.cfg ...
Setting password protection...
Found linux image: /boot/vmlinuz
Found initrd image: /boot/initrd.img
done

На данный момент при загрузке и попытке редактировать загрузчик по средствам клавиши «e» нас спросят о пароле, но нам этого не достаточно мы хотим чтоб стандартный линукс загружался сам, без вмешательства, а не православная Windows только при вводе пароля! Для этого необходимо изменить файл /etc/grub.d/30_os-prober, он отвечает как раз за загрузку не стандартных ОС, в том числе и Windows.  Открываем его в любимом редакторе и ищем строчки начинающиеся с «menuentry» и приводим их к следующему виду:

$ sudo vi /etc/grub.d/30_os-prober
menuentry "${LONGNAME} (${2}-bit) (on ${DEVICE})"  --users damir {

То есть добавляем «–users damir» что приведет к тому, что пользователь damir сможет загружать Windows после ввода пароля, а так же суперпользователь admin! Если мы введем «–users admin» то только суперпользователь сможет использовать данный пункт меню загрузки. ВНИМАНИЕ таких строк несколько в частности в загрузчики Ubuntu 10.10 их четыре, соответственно во все четыре нужно прописать пользователей.
Еще раз обновляем GRUB2 и перезагружаемся.

$ sudo update-grub
Generating grub.cfg ...
Setting password protection...
Found linux image: /boot/vmlinuz
Found initrd image: /boot/initrd.img
done
$ sudo reboot

Есть у нового загрузчика один нюанс, после появления в его меню дополнительной системы (в нашем случае Windows XP), grub2 всегда показывает меню с возможностью выбора системы. Меня это не устроило пришлось лезть в исходники скриптов формирования grub.cfg и принимать меры. Итак создаем файл «31_sleep» и приводим его к следующему виду:

$ sudo touch /etc/grub.d/31_sleep
$ sudo vi /etc/grub.d/31_sleep
echo "Setting Sleep..." >&2
cat <<EOF
if [ "x\${timeout}" != "x-1" ]; then
  if keystatus; then
    if keystatus --shift; then
      set timeout=-1
    else
      set timeout=0
    fi
  else
    if sleep$verbose --interruptible 3 ; then
      set timeout=0
    fi
  fi
fi
EOF

Выставляем необходимые права и разрешения:

$ sudo chmod u+x,go-rw /etc/grub.d/05_password

Проверяем следующие параметры в файле «/etc/default/grub»

$ sudo vi /etc/default/grub
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=2


И последний раз обновляем GRUB2 и перезагружаемся.

$ sudo update-grub
Generating grub.cfg ...
Setting password protection...
Found linux image: /boot/vmlinuz
Found initrd image: /boot/initrd.img
done
$ sudo reboot

В идеале должно получиться следующее: без вмешательства загружается Ubuntu (или любой другой, ваш любимый Linux дистрибутив) не отображая ни каких меню для выбора OS, при удерживании Shift отображается меню в котором можно выбрать Windows XP для загрузки последней необходимо ввести логин и пароль. В принципе то, что хотели получить, получили!
Использовал:

    http://forum.ubuntu.ru/index.php?topic=74165.0
    http://sanmai.livejournal.com/774603.html
    http://www.ubuntugeek.com/how-to-set-grub-2-password-protection.html
[свернуть]
Debian Testing, kernel 3.16-2-amd64, OpenBox
AMD A8-3750 / 16Gb RAM / ATI HD6550D (onboard) / Sound ASUS Xonar - DS
_______________________________
Debian Testing, kernel 3.14-2-amd64, OpenBox
HP-655 AMD E1 / 8Gb RAM / ATI HD7310M

krserv

спасибо, а чтобы это же сделать но без ввода пароля для Windows?  Там что-то так много написано, может можно проще? Нужно изучать, я делаю еще первые шаги с Grub.  Т.е меню будет скрыто, при нажатии во время загрузки shift - оно появляется, желательно пункт Windows переименовать на название Memtest - например, чтобы не светилось, ну а пароль мне не нужен для его загрузки. А еще лучше назначить бы какую-нибудь секретную клавишу для загрузки без меню