Участник:HihinRuslan/Заметки на полях: различия между версиями

Материал из ALT Linux Wiki
(не показано 25 промежуточных версий этого же участника)
Строка 1: Строка 1:
===Решение проблемок===
==Решение проблемок==


=== Сборка в girar через src.rpm пакетов ===
=== Сборка в girar через src.rpm пакетов ===
Строка 76: Строка 76:


дале работаем с содержимым каталога, /mnt/install, в заключении надо всё (/mnt/disk, /mnt/instal) отмонтировать
дале работаем с содержимым каталога, /mnt/install, в заключении надо всё (/mnt/disk, /mnt/instal) отмонтировать
=== Снижение температуры ноутбука ===
<source lang=text>
# apt-get install powertop
# powertop --auto-tune
man powertune
...
ИМЯ
        powertop - инструмент диагностики энергопотребления и управления питанием.
СИНТАКСИС
        powertop [опции]
ОПИСАНИЕ
        powertop — программа, помогающая диагностировать различные проблемы с энергопотреблением и управлением питанием. Он также имеет интерактивный режим, позволяющий экспериментировать с различными настройками управления питанием. При вызове
        powertop без аргументов powertop запускается в интерактивном режиме.
ОПЦИИ
        --auto-tune (автонастройка)
              Установите все настраиваемые параметры в оптимальное состояние без участия оператора.
....
</source>


====Поиск диска на SATA/ESATA ====
====Поиск диска на SATA/ESATA ====
Строка 233: Строка 257:
</source>
</source>


=== Отключение перекодировки кириллических символов в Firefox ===
=== Отключение перекодировки кириллических символов в Firefox / Palemoon  ===


Для тех, кто в FireFox замучился копировать ссылки с кириллицей:
Для тех, кто в FireFox замучился копировать ссылки с кириллицей:
Строка 250: Строка 274:


<source lang=dos>
<source lang=dos>
epm repac
epm repack путь_до_файла
</source>
</source>


=== Получение загруженного драйвера в Xorg ===
=== Получение загруженного драйвера в Xorg ===
Строка 259: Строка 282:


  # lshw -c Display <ref> нужен пакет lshw </ref>
  # lshw -c Display <ref> нужен пакет lshw </ref>
=== Восстановление разрешения экрана в KDE ===
Например после неправильного выхода из некотoрых игр/программ в полноэкранном режиме) ===
Удалить содержимое 
~./local/share/kscreen/
=== Отключение автоматическое монтирование внешних дисков  в Gnome для всех пользователей ===
$ su -
# mcedit /etc/dconf/db/local.d/00-autounmount
Заполняем :
  [org/gnome/desktop/media-handling]
  automount=false
  automount-open=false
 
        Это отключает автомонтирование внешних устройств и открытие файловых менеджеров при подключении устройств.
           
Обновляем настройки dcond
# dconf update
PS Спасибо gpt боту Гномику и его авторам.
=== Проблемы при монтированием udiskctl ===
Вечно был озадачен, почему вдруг смонтированные разделы через udisksctl вдруг отключаются, а тут случайно набрёл, ища ответ на совсем другой вопрос 😉  На https//wiki.archlinux.org  глава из статьи Udisks_(Русский)
[https://wiki.archlinux.org/title/Udisks_(Русский)#Устройства_не_остаются_размонтированными_(udisks) Устройства_не_остаются_размонтированными_(udisks)]
<source>
"Устройства не остаются размонтированными (udisks)
udisks либо заново монтирует устройства по истечении некоторого периода, либо опрашивает такие устройства. Это может вызвать нежелательные эффекты, например, при форматировании дисков, совместной работе с ними в виртуальной машине, при работе в режиме энергосбережения или при удалении устройства, которое не было ранее отключено с параметром --detach.
Следующая команда отключит опрашивание выбранного CD/DVD устройства:
# udisks --inhibit-polling /dev/sr0
То же самое, но для всех устройств одновременно.
# udisks --inhibit-all-polling
Подробнее см. udisks(8). "
</source>
И здесь-же ответ на вопрос на форуме - почему иногда появляется запрос на ввод пароля для изменения данных smart :
<source>
"Демон udisks регулярно опрашивает устройства с целью сбора S.M.A.R.T.-данных. Жесткие диски, время ожидания которых больше интервала опрашивания, могут не успевать войти в режим standby. Устройства, которые уже вошли в этот режим, данной проблеме не подвержены. Судя по всему, в настоящий момент в udisks2 не предусмотрено способа отключить опрашивание устройств или изменить интервал. См. [5] и [6].
Тем не менее, время ожидания в udisks2 изменить можно. Подробнее см. #Применение настроек ATA (udisks2).
Другие возможные обходные решения заключаются в задании отдельной задержки перед интервалом опрашивания (10 минут) или в ручном переводе диска в замедленный режим командой hdparm -y /dev/sdx. "
</source>
=== Быстро посмотреть разделы и диски на компьютере ===
Создать скрипт или аллиас , например с именем lspart с таким содержимым и вызвать его:
{{cmd|lsblk -o NAME,MOUNTPOINT,LABEL,FSTYPE,SIZE,MODEL}}
=== Удалить все пакеты c именем vlc ===
{{cmd|apt-get remove $(rpm -qa \*vlc\* --qf '%{name} ')}}
=== Работа с тэгами апстрима ===
.gear/rules указывает на тег в апстримном бранче.
После слияния через {{cmd|git merge -s ours ТЕГ}} делается {{cmd|gear-update-tag -a}}  и в .gear появляется файл с хэшем собираемого апстимного коммита. Это дерево и упаковывается в архив при {{cmd|gear-hsh}}.
=== Добавить в меню приложения KDE ===
'''Решение''' - установить пакет {{pkg|kde5-profile}}
Смотри например {{altbug|48106}}
== Консоль Grub2 ==
Выдержки и цитаты из [https://wiki.archlinux.org/title/GRUB_(Русский)#Консоль_GRUB2 Статья на ArchWiki]
Если вы попали в консоль Grub, то надо первым делом определить в какой тип консоли вы попали, а дальше действовать в соответствии с этим.
Загрузчик GRUB2 выполняет свой файл конфигурации как шелл-подобный скрипт, состоящий из команд. Все те же команды он позволяет выполнять и в интерактивном режиме, с помощью консоли.
=== Нормальная консоль GRUB2 ===
==== Причина попадания в нормальную консоли ====
Если вы видите в терминале GRUB2 приглашение вида '''grub>''' , значит вы попали в его нормальную консоль.
{{Note|GRUB2 открывает нормальную консоль, если:
*    при загрузке не найден файл конфигурации grub.cfg;
*    файл конфигурации найден и выполнен, но в ходе его выполнения так и не было создано меню, и не была выполнена команда boot (см. ниже), либо её выполнение завершилось неудачно;
*    в меню загрузчика нажата клавиша "c".}}
==== Команды, полезные в консоли GRUB2 ====
Кроме уже описанных в части "Настройка", в консоли GRUB2 могут пригодиться:
*    Переменная pager . Присвоение ей единицы командой pager=1 поможет вам полностью читать вывод следующих команд, если он не помещается на экран.
*    Команда help . Без параметров выводит список всех поддерживаемых в текущей конфигурации команд загрузчика. При вызове вида help слово выводит справку по командам, в которых присутствует заданное слово. Например, команда help normal покажет справку по командам normal и normal_exit.
*    Команда ls без параметров выводит список дисков и разделов, доступных в данный момент загрузчику. С ключом -l показывает подробные сведения о каждом из них – размер, метку, UUID и тип файловой системы. С ключами -lh выводит размеры в "человекочитаемом" виде. С параметром в виде диска или раздела выводит сведения только о нём, например ls (hd0,1) выведет сведения о первом разделе на нулевом диске.
    Команда ls с параметром в виде полного пути к каталогу выводит содержимое каталога. С ключом -l показывает подробные ведения о каждом файле и каталоге, с ключами -lh выводит размеры и даты в "человекочитаемом" фромате. К примеру, команда ls -lh /boot подробно выведет содержимое каталога /boot на текущем (в переменной root) разделе, а ls (hd0,1)/ покажет список файлов и каталогов в корневом каталоге раздела hd0,1.
*    Команда set без параметров. Выводит список всех переменных со значениями.
*    Команда echo аналогична такой же команде обычного шелла, и выводит всё, что в ней написано. Может использоваться для вывода переменных, например echo $cmdpath $prefix $root покажет значения трёх самых важных переменных загрузчика.
*    Команда cat аналогична одноимённой команде шелла, и выводит содержимое заданного файла в консоль. Так как перенаправления ввода-вывода GRUB2 не поддерживает, использовать её можно только для просмотра текстовых файлов, например, конфига самого загрузчика, fstab, и т.д.
*    Команда boot запускает образ ядра, другого загрузчика, или EFI-приложения, загруженный перед этим командами linux, initrd, ntldr, chainloader и некоторыми другими. В отличии от меню GRUB, где запуск загруженных образов происходит автоматически после завершения кода пункта меню, в консоли выполнение этой команды обязательно – без неё загруженный образ сам не запустится.
В нормальной консоли GRUB2 поддерживает возврат к предыдущим командам и автодополнение команд, каталогов и файлов по нажатию клавиши TAB, как в консоли Linux.
==== Загрузки из нормальной консоли Grub (пример) ====
Если вы успешно установили загрузчик в корневой раздел, но забыли создать конфиг загрузчика, вы увидите меню из дефолтного конфига, но оно не будет работать. Чтобы продолжить загрузку, вы можете войти в консоль, нажав клавишу "c", и выполнить команды:
<syntaxhighlight lang="bash">
probe -s UUID -u $root
linux /boot/vmlinuz-linux rw root=UUID=$UUID
initrd /boot/initramfs-linux.img
boot
</syntaxhighlight>
====== Пример загрузки с внешнего диска из консоли ======
Во многих версиях BIOS нет специального интерфейса для однократной загрузки с флешки. Для этого можно создать отдельный пункт меню, но на один раз проще обойтись консолью GRUB:
<syntaxhighlight lang="text">
root=hd1
chainloader +1
boot
</syntaxhighlight>
===== Пример конфига с загрузкой без меню =====
grub.cfg
<syntaxhighlight lang="text">
set timeout=3
probe -s UUID -u $root
linux /boot/vmlinuz-linux rw root=UUID=$UUID
initrd /boot/initramfs-linux.img
if sleep -vi $timeout
then boot
fi
</syntaxhighlight>
В этом примере GRUB2 загружает с диска образы ядра и initramfs, ждёт 3 секунды, и запускает ядро.
Если же в течении этих секунд пользователь нажмёт ESC, он попадёт в консоль загрузчика. Так как ядро уже загружено, для продолжения загрузки достаточно набрать команду boot в консоли.
=== Аварийная консоль ===
Если вместо меню или "шапки" нормальной консоли вы видите при старте загрузчика сообщение об ошибке и приглашение вида '''grub rescue>,''' значит вы попали в аварийную консоль.
{{Note|Аварийная консоль GRUB2 встроена в стартовый образ загрузчика, и запускается в случаях, когда GRUB2 не может самостоятельно перейти в "нормальный" режим. Такое может случиться, если ядро GRUB2 при загрузке не нашло каталог со своими файлами и модулями по пути, указанному в переменной prefix.}}
Значение этой переменной обычно имеет вид (диск,раздел)/путь, например (hd0,msdos6)/boot/grub. Обозначение диска подставляется при старте загрузчика, а остальная часть (начиная с запятой) "зашивается" в стартовый образ ещё на этапе установки. Это значит, что после изменения любого из содержащихся в $prefix параметров (таблицы разделов, номера раздела, пути к файлам grub), загрузчик требуется переустанавливать, в противном случае он "вывалится" в аварийную консоль.
В режиме аварийной консоли GRUB2 понимает всего 4 команды: '''set''' , '''unset''' , '''ls''' , и '''insmod''' . Повтор и автодополнение не поддерживаются, команда ls поддерживается в урезанном виде – без ключей и с выводом в сведениях о разделах только типа файловой системы, если она опознана.
По-умолчанию в стартовый образ загрузчика включается модуль для поддержки таблицы разделов и файловой системы только для того раздела, на который устанавливается GRUB2. Остальные модули должны загружаться уже из файлов, если загрузчику удастся их найти.
В некоторых случаях, когда встроенных в стартовый образ модулей достаточно для продолжения загрузки в изменившихся условиях, загрузку можно продолжить, изменив в аварийной консоли переменную $prefix.
Если вы попали в аварийную консоль, наберите для начала команду set. Вы увидите значения трёх главных переменных GRUB2.
* В переменной cmdpath будет обозначение диска, либо полный путь к EFI-файлу, из которого стартовал образ загрузчика.
* В переменной prefix будет тот путь, по которому должен был быть каталог с остальными файлами загрузчика.
* В переменной root будет текущий диск или раздел, скорей всего совпадающий с тем, что в $prefix. Попробуйте команды
<syntaxhighlight lang="bash">
ls
ls $root
ls $prefix
</syntaxhighlight>
Если вы знаете, что делалось с диском перед тем, как GRUB показал ошибку, то возможно, вы уже догадываетесь, в чём ошибка и удастся ли её исправить.
Если в переменной $root оказался не тот или несуществующий раздел, можно проверять командами вида ls (диск,раздел)/ каждый раздел из тех, что вывела первая команда, пока не найдётся нужный. Если он нашелся – к примеру, оказался hd0,msdos5 вместо hd0,msdos6, и читается – запишите его в переменные:
<syntaxhighlight lang="bash">
root=hd0,5
prefix=($root)/boot/grub
</syntaxhighlight>
Если раздел правильный, а неправильный каталог (команда ls $prefix выдаёт ошибку или не то, что нужно), запишите в переменную правильный путь, допустим такой:
<syntaxhighlight lang="bash">
prefix=($root)/grub
</syntaxhighlight>
Если у вас получилось найти правильный диск, раздел и каталог, и вы успешно прописали из в переменные, остаётся загрузить модуль "normal" и выполнить одноимённую команду (она станет доступна после загрузки модуля), чтобы перейти в "нормальный" режим загрузчика:
<syntaxhighlight lang="bash">
insmod normal
normal
</syntaxhighlight>
{{Note| Если же из аварийной консоли не удаётся получить доступ к нужному каталогу с файлами загрузчика – увы, но больше она ничем не сможет помочь, и вам придётся обратиться к другим способам загрузки, например с внешних носителей.}}
== Примечания ==


[[Категория:FAQ]]
[[Категория:FAQ]]

Версия от 05:01, 15 февраля 2024

Решение проблемок

Сборка в girar через src.rpm пакетов

1. Подписываем пакет

rpm --addsign путь/пакет.src.rpm

2. Загружаем пакеты в girar, например так :

rsync --progress -va /home/$HOME/incoming/Sisyphus/$(cd /home/$HOME/incoming/Sisyphus/ && ls *.src.rpm) girar:

Дальше, например :

ssh girar build --test-only  srpm  $(cd /home/$HOME/incoming/Sisyphus/ && ls *.src.rpm)

Отменить наследование (от git)

ssh girar task check-git-inheritance  <task_id> <subtask_number> disable <hsh последнего коммита>

SimplyLinuх вместо русских букв квадратики

1. Установил fbset

2. Прописал в /etc/sysconfig/framebuffer

ENABLE=yes

MODULE=i810fb

#MODE=800x600-80

TTYS='1 2 3 4 5 6 12'

3. Перезапустил fbsetfont

service fbsetfont restart

Работа с образами типа vdi

Работа с *.img и *.vdi образом

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


  • Создание из образа .img образ.vdi
 qemu-img convert -f raw -O vdi flash_tde_32.img flash_tde_32.vdi
 VBoxManage convertfromraw flash_tde_32.img flash_tde_64.vdi --format VDI
  • Создание образа с реального железа (флешки)
 qemu-img convert -f raw -O vdi /dev/sdc regular-tde-latest-x86_64.vdi
 VBoxManage convertfromraw /dev/sdg flash_tde_64.vdi --format VDI


  • Запись образа *.vdi на реальное железо (флешку)
 qemu-img convert -f vdi -O raw regular-tde-latest-x86_64.vdi /dev/sdc
  • монтирование разделов внутри *.vdi
устанавливаем пакет vdfuse
 apt-get install vdfuse
монтируем образ vdi, например так
 vdfuse -f  install_flash.vdi  /mnt/disk

В каталоге /mnt/disk появляются файлы - образы разделов в формате RAW EntireDisk, Partition1, и т.д.

Монтирукм один из них в нужный нам каталог:

mount Partition1 /mnt/install

дале работаем с содержимым каталога, /mnt/install, в заключении надо всё (/mnt/disk, /mnt/instal) отмонтировать

Снижение температуры ноутбука

# apt-get install powertop
# powertop --auto-tune

man powertune
...
ИМЯ
        powertop - инструмент диагностики энергопотребления и управления питанием.

СИНТАКСИС
        powertop [опции]

ОПИСАНИЕ
        powertop — программа, помогающая диагностировать различные проблемы с энергопотреблением и управлением питанием. Он также имеет интерактивный режим, позволяющий экспериментировать с различными настройками управления питанием. При вызове
        powertop без аргументов powertop запускается в интерактивном режиме.

ОПЦИИ
        --auto-tune (автонастройка)
               Установите все настраиваемые параметры в оптимальное состояние без участия оператора.
....

Поиск диска на SATA/ESATA

У меня стоит док станция, подключённая через ESATA. При включении её, она автоматом не ловится, приходится давать команду от root, подсмотренну здесь :

http://forum.oszone.net/thread-267061-2.html

Поиск диска:

for i in /sys/class/scsi_host/host*; do echo "- - -" > $i/scan; done

Отключение:

 echo 1 > /sys/block/sdX/device/delete

где sdX - sda...sdn - dev на котором он висит.

И оказывается есть такой пакет:

https://aur.archlinux.org/packages/scsiadd/

Скрипт еженедельного обновления Chrome

#!/bin/bash

# sources.list setting for google-chrome updates.
pack="https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm"
name="google-chrome-stable_current_x86_64.rpm"
names="google-chrome-stable"
namep=$(basename $name .rpm)

  # The initial install happens in the post-install scripts, but there have been
  # reports of configuration problems, so just verify that everything looks
  # good, and if not, try to install again.

/usr/bin/wget $pack -c -P /tmp/

namet=$(/bin/rpm -q $names)
namep1="$(/usr/bin/rpm -qp /tmp/$name)"

echo $namet $namep1

/bin/mv /tmp/$name /tmp/$namep1.rpm
if [ $? -eq 0 ];then
    if [  ! "$namet" = "$namep1"  ];then
        /bin/rpm -F --noscripts  --oldpackage /tmp/$namep1.rpm
        /bin/rm -f /etc/cron.daily/google-chrome
        echo "Update $namep1 !"
    else
     echo "Save $namep1"
    fi

fi

Помещаем в /etc/cron.weekly/ , активируем anacron

chkconfig anacron on

Создание загрузочной флешки в Windows

Подготовка загрузочной флешки в командной строке

Подготовьте USB флеш накопитель достаточного размера для записи операционной системы Windows. Далее вставьте флешку в USB разъем компьютера.

Запустить cmd с правами администратора

Для запуска утилиты DiskPart необходимо ввести следующую команду:

diskpart

Под введенной командой отобразится информация об утилите.

Далее введите команду для отображения дисков на данном компьютере:

list disk

Обратите внимание на номер диска флешки. Ориентироваться нужно по размеру диска. Например, у меня подключено к компьютеру 4 жестких диска (из них два внешних) и одна флешка. Размер флешки будет меньше, чем у жестких дисков. Это хорошо видно на изображении.

командная строка

Далее нужно ввести команду для выбора флеш-накопителя. Будьте внимательны! Номер диска у вас будет другой , соответствующий номеру диска вашей флешки. Поэтому введите свой номер диска:

select disk 1

Был выбран диск 1.

Теперь нужно вести команду для очистки флешки (быстрое форматирование):

clean

Очистка диска успешно выполнена.

Введите команду для создания раздела:

create partition primary

Указанный раздел успешно создан.

Введите команду для выбора раздела (был раздел только один раздел):

select partition 1

Выбран раздел 1.

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

active

Раздел помечен как активный.

Далее необходимо ввести команду для форматирования флешки в файловую систему FAT32 (или NTFS):

format fs=FAT32 QUICK


Программа DiskPart успешно отформатировала том.

Ввод команды для присвоения буквы для диска (флешки):

assign

Назначение имени диска или точки подключения выполнено успешно.

команды

Для выхода из утилиты DiskPart введите команду:

exit

Отключение перекодировки кириллических символов в Firefox / Palemoon

Для тех, кто в FireFox замучился копировать ссылки с кириллицей:

В about:config
установите параметр 
browser.urlbar.decodeURLsOnCopy
в значени
true

Перепаковка rpm / deb с помощью epm

Начиная с версии eepm 2.4.5-alt1 (в p7 ещё нет)

epm repack путь_до_файла

Получение загруженного драйвера в Xorg

$ inxi -G[1]
# lshw -c Display [2]

Восстановление разрешения экрана в KDE

Например после неправильного выхода из некотoрых игр/программ в полноэкранном режиме) ===

Удалить содержимое

~./local/share/kscreen/

Отключение автоматическое монтирование внешних дисков в Gnome для всех пользователей

$ su -

  1. mcedit /etc/dconf/db/local.d/00-autounmount

Заполняем :

  [org/gnome/desktop/media-handling]
  automount=false
  automount-open=false
  
        Это отключает автомонтирование внешних устройств и открытие файловых менеджеров при подключении устройств.
           

Обновляем настройки dcond

  1. dconf update

PS Спасибо gpt боту Гномику и его авторам.


Проблемы при монтированием udiskctl

Вечно был озадачен, почему вдруг смонтированные разделы через udisksctl вдруг отключаются, а тут случайно набрёл, ища ответ на совсем другой вопрос 😉 На https//wiki.archlinux.org глава из статьи Udisks_(Русский)

Устройства_не_остаются_размонтированными_(udisks)

"Устройства не остаются размонтированными (udisks)

udisks либо заново монтирует устройства по истечении некоторого периода, либо опрашивает такие устройства. Это может вызвать нежелательные эффекты, например, при форматировании дисков, совместной работе с ними в виртуальной машине, при работе в режиме энергосбережения или при удалении устройства, которое не было ранее отключено с параметром --detach.

Следующая команда отключит опрашивание выбранного CD/DVD устройства:

# udisks --inhibit-polling /dev/sr0

То же самое, но для всех устройств одновременно.

# udisks --inhibit-all-polling

Подробнее см. udisks(8). "

И здесь-же ответ на вопрос на форуме - почему иногда появляется запрос на ввод пароля для изменения данных smart :

"Демон udisks регулярно опрашивает устройства с целью сбора S.M.A.R.T.-данных. Жесткие диски, время ожидания которых больше интервала опрашивания, могут не успевать войти в режим standby. Устройства, которые уже вошли в этот режим, данной проблеме не подвержены. Судя по всему, в настоящий момент в udisks2 не предусмотрено способа отключить опрашивание устройств или изменить интервал. См. [5] и [6].

Тем не менее, время ожидания в udisks2 изменить можно. Подробнее см. #Применение настроек ATA (udisks2).

Другие возможные обходные решения заключаются в задании отдельной задержки перед интервалом опрашивания (10 минут) или в ручном переводе диска в замедленный режим командой hdparm -y /dev/sdx. "

Быстро посмотреть разделы и диски на компьютере

Создать скрипт или аллиас , например с именем lspart с таким содержимым и вызвать его:

lsblk -o NAME,MOUNTPOINT,LABEL,FSTYPE,SIZE,MODEL


Удалить все пакеты c именем vlc

apt-get remove $(rpm -qa \*vlc\* --qf '%{name} ')

Работа с тэгами апстрима

.gear/rules указывает на тег в апстримном бранче. После слияния через git merge -s ours ТЕГ делается gear-update-tag -a  и в .gear появляется файл с хэшем собираемого апстимного коммита. Это дерево и упаковывается в архив при gear-hsh.

Добавить в меню приложения KDE

Решение - установить пакет kde5-profile Смотри например altbug #48106


Консоль Grub2

Выдержки и цитаты из Статья на ArchWiki Если вы попали в консоль Grub, то надо первым делом определить в какой тип консоли вы попали, а дальше действовать в соответствии с этим. Загрузчик GRUB2 выполняет свой файл конфигурации как шелл-подобный скрипт, состоящий из команд. Все те же команды он позволяет выполнять и в интерактивном режиме, с помощью консоли.

Нормальная консоль GRUB2

Причина попадания в нормальную консоли

Если вы видите в терминале GRUB2 приглашение вида grub> , значит вы попали в его нормальную консоль.

Примечание: GRUB2 открывает нормальную консоль, если:
  • при загрузке не найден файл конфигурации grub.cfg;
  • файл конфигурации найден и выполнен, но в ходе его выполнения так и не было создано меню, и не была выполнена команда boot (см. ниже), либо её выполнение завершилось неудачно;
  • в меню загрузчика нажата клавиша "c".


Команды, полезные в консоли GRUB2

Кроме уже описанных в части "Настройка", в консоли GRUB2 могут пригодиться:

  • Переменная pager . Присвоение ей единицы командой pager=1 поможет вам полностью читать вывод следующих команд, если он не помещается на экран.
  • Команда help . Без параметров выводит список всех поддерживаемых в текущей конфигурации команд загрузчика. При вызове вида help слово выводит справку по командам, в которых присутствует заданное слово. Например, команда help normal покажет справку по командам normal и normal_exit.
  • Команда ls без параметров выводит список дисков и разделов, доступных в данный момент загрузчику. С ключом -l показывает подробные сведения о каждом из них – размер, метку, UUID и тип файловой системы. С ключами -lh выводит размеры в "человекочитаемом" виде. С параметром в виде диска или раздела выводит сведения только о нём, например ls (hd0,1) выведет сведения о первом разделе на нулевом диске.
   Команда ls с параметром в виде полного пути к каталогу выводит содержимое каталога. С ключом -l показывает подробные ведения о каждом файле и каталоге, с ключами -lh выводит размеры и даты в "человекочитаемом" фромате. К примеру, команда ls -lh /boot подробно выведет содержимое каталога /boot на текущем (в переменной root) разделе, а ls (hd0,1)/ покажет список файлов и каталогов в корневом каталоге раздела hd0,1.
  • Команда set без параметров. Выводит список всех переменных со значениями.
  • Команда echo аналогична такой же команде обычного шелла, и выводит всё, что в ней написано. Может использоваться для вывода переменных, например echo $cmdpath $prefix $root покажет значения трёх самых важных переменных загрузчика.
  • Команда cat аналогична одноимённой команде шелла, и выводит содержимое заданного файла в консоль. Так как перенаправления ввода-вывода GRUB2 не поддерживает, использовать её можно только для просмотра текстовых файлов, например, конфига самого загрузчика, fstab, и т.д.
  • Команда boot запускает образ ядра, другого загрузчика, или EFI-приложения, загруженный перед этим командами linux, initrd, ntldr, chainloader и некоторыми другими. В отличии от меню GRUB, где запуск загруженных образов происходит автоматически после завершения кода пункта меню, в консоли выполнение этой команды обязательно – без неё загруженный образ сам не запустится.

В нормальной консоли GRUB2 поддерживает возврат к предыдущим командам и автодополнение команд, каталогов и файлов по нажатию клавиши TAB, как в консоли Linux.

Загрузки из нормальной консоли Grub (пример)

Если вы успешно установили загрузчик в корневой раздел, но забыли создать конфиг загрузчика, вы увидите меню из дефолтного конфига, но оно не будет работать. Чтобы продолжить загрузку, вы можете войти в консоль, нажав клавишу "c", и выполнить команды:

probe -s UUID -u $root
linux /boot/vmlinuz-linux rw root=UUID=$UUID
initrd /boot/initramfs-linux.img
boot
Пример загрузки с внешнего диска из консоли

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

root=hd1
chainloader +1
boot
Пример конфига с загрузкой без меню

grub.cfg

set timeout=3

probe -s UUID -u $root
linux /boot/vmlinuz-linux rw root=UUID=$UUID
initrd /boot/initramfs-linux.img

if sleep -vi $timeout
then boot
fi

В этом примере GRUB2 загружает с диска образы ядра и initramfs, ждёт 3 секунды, и запускает ядро.

Если же в течении этих секунд пользователь нажмёт ESC, он попадёт в консоль загрузчика. Так как ядро уже загружено, для продолжения загрузки достаточно набрать команду boot в консоли.

Аварийная консоль

Если вместо меню или "шапки" нормальной консоли вы видите при старте загрузчика сообщение об ошибке и приглашение вида grub rescue>, значит вы попали в аварийную консоль.

Примечание: Аварийная консоль GRUB2 встроена в стартовый образ загрузчика, и запускается в случаях, когда GRUB2 не может самостоятельно перейти в "нормальный" режим. Такое может случиться, если ядро GRUB2 при загрузке не нашло каталог со своими файлами и модулями по пути, указанному в переменной prefix.


Значение этой переменной обычно имеет вид (диск,раздел)/путь, например (hd0,msdos6)/boot/grub. Обозначение диска подставляется при старте загрузчика, а остальная часть (начиная с запятой) "зашивается" в стартовый образ ещё на этапе установки. Это значит, что после изменения любого из содержащихся в $prefix параметров (таблицы разделов, номера раздела, пути к файлам grub), загрузчик требуется переустанавливать, в противном случае он "вывалится" в аварийную консоль.

В режиме аварийной консоли GRUB2 понимает всего 4 команды: set , unset , ls , и insmod . Повтор и автодополнение не поддерживаются, команда ls поддерживается в урезанном виде – без ключей и с выводом в сведениях о разделах только типа файловой системы, если она опознана.

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

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

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

  • В переменной cmdpath будет обозначение диска, либо полный путь к EFI-файлу, из которого стартовал образ загрузчика.
  • В переменной prefix будет тот путь, по которому должен был быть каталог с остальными файлами загрузчика.
  • В переменной root будет текущий диск или раздел, скорей всего совпадающий с тем, что в $prefix. Попробуйте команды
ls
ls $root
ls $prefix

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

Если в переменной $root оказался не тот или несуществующий раздел, можно проверять командами вида ls (диск,раздел)/ каждый раздел из тех, что вывела первая команда, пока не найдётся нужный. Если он нашелся – к примеру, оказался hd0,msdos5 вместо hd0,msdos6, и читается – запишите его в переменные:

root=hd0,5
prefix=($root)/boot/grub

Если раздел правильный, а неправильный каталог (команда ls $prefix выдаёт ошибку или не то, что нужно), запишите в переменную правильный путь, допустим такой:

prefix=($root)/grub

Если у вас получилось найти правильный диск, раздел и каталог, и вы успешно прописали из в переменные, остаётся загрузить модуль "normal" и выполнить одноимённую команду (она станет доступна после загрузки модуля), чтобы перейти в "нормальный" режим загрузчика:

insmod normal
normal
Примечание: Если же из аварийной консоли не удаётся получить доступ к нужному каталогу с файлами загрузчика – увы, но больше она ничем не сможет помочь, и вам придётся обратиться к другим способам загрузки, например с внешних носителей.


Примечания

  1. нужен пакет inxi
  2. нужен пакет lshw