Что такое загрузчик для UEFI?

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

Вот сценарий оболочки, который сделает это. Он использует версию statдля Linux, чтобы получить метку времени последней модификации.

#!/bin/sh

echo "PATHNAME,TIMESTAMP"
stat -c '"%n",%y' "$@"

После вывода заголовка этот сценарий просто вызывает statс путями, указанными в командной строке, чтобы получить метку времени последней модификации (см. руководство для statв вашей системе, чтобы выяснить, как изменить это ). Он печатает путь (в кавычках )и отметку времени.

Вы могли бы использовать это как

sh script.sh PATTERN >outputfile

Например:

$ sh script.sh *.log* *.tar >file.cvs

$ cat file.cvs
PATHNAME,TIMESTAMP
"dsmerror.log",2018-07-17 13:00:02.911711652 +0200
"dsminstr.log",2018-07-17 13:00:04.079726608 +0200
"dsminstr.log.bak",2018-05-13 18:00:03.231791181 +0200
"dsminstr.log.lock",2018-07-17 13:00:04.079726608 +0200
"archive_20170823-old.tar",2017-08-22 16:44:23.037803149 +0200
"archive_20170823.tar",2017-08-23 09:35:28.956158119 +0200
"archive_20180409.tar",2018-04-09 09:47:29.472374428 +0200
"archive-chr22.tar",2018-06-19 14:50:45.896447161 +0200
"gene_cache.tar",2018-04-25 09:44:15.518486626 +0200

Так как сценарий очень короткий, его команды могут быть написаны непосредственно в командной строке. Эквивалентная командная строка для приведенного выше примера будет

$ { echo "PATHNAME.TIMESTAMP"; stat -c '"%n",%y' *.log* *.tar; } >file.cvs

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

$ column -s, -t file.csv
PATHNAME                    TIMESTAMP
"dsmerror.log"              2018-07-17 13:00:02.911711652 +0200
"dsminstr.log"              2018-07-17 13:00:04.079726608 +0200
"dsminstr.log.bak"          2018-05-13 18:00:03.231791181 +0200
"dsminstr.log.lock"         2018-07-17 13:00:04.079726608 +0200
"archive_20170823-old.tar"  2017-08-22 16:44:23.037803149 +0200
"archive_20170823.tar"      2017-08-23 09:35:28.956158119 +0200
"archive_20180409.tar"      2018-04-09 09:47:29.472374428 +0200
"archive-chr22.tar"         2018-06-19 14:50:45.896447161 +0200
"gene_cache.tar"            2018-04-25 09:44:15.518486626 +0200

Это работает, если ни один из путей не содержит запятую.

Чтобы правильно отформатировать это с помощью парсера CSV, который также справится с путями, содержащими запятые:

$ csvlook file.csv
| PATHNAME                 | TIMESTAMP                           |
| ------------------------ | ----------------------------------- |
| dsmerror.log             | 2018-07-17 13:00:02.911711652 +0200 |
| dsminstr.log             | 2018-07-17 13:00:04.079726608 +0200 |
| dsminstr.log.bak         | 2018-05-13 18:00:03.231791181 +0200 |
| dsminstr.log.lock        | 2018-07-17 13:00:04.079726608 +0200 |
| archive_20170823-old.tar | 2017-08-22 16:44:23.037803149 +0200 |
| archive_20170823.tar     | 2017-08-23 09:35:28.956158119 +0200 |
| archive_20180409.tar     | 2018-04-09 09:47:29.472374428 +0200 |
| archive-chr22.tar        | 2018-06-19 14:50:45.896447161 +0200 |
| gene_cache.tar           | 2018-04-25 09:44:15.518486626 +0200 |

csvlookявляется частью csvkit, набора инструментов Python для работы с CSV-файлами.

1
04.08.2020, 00:17
1 ответ

Не может быть дополнительного загрузчика (или менеджера загрузки )с UEFI, так как сама прошивка играет роль загрузчика (по крайней мере для запуска какого-то другого загрузчика/менеджера загрузки ); большинство из тех, что я видел до сих пор, не имеют загрузочного менеджера («меню загрузки :...» )роль --или играют плохо.

Загрузочный загрузчик может загружать и запускать исполняемый файл следующего -этапа (другого загрузчика, менеджера загрузки, ядра или, например,. мемтест86 ); в случае UEFI SecureBoot он также несет ответственность за запуск перехватчиков проверки подписи двоичного файла в прошивке.

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

В «тривиальном» случае можно запустить ядро ​​Linux, скомпилированное с CONFIG_EFI_STUB=yи помещенное как \EFI\BOOT\bootx64.efiв системный раздел FAT32 EFI системы x86 _64 непосредственно с помощью прошивки UEFI, хотя дистрибутивы, похоже, не поддерживают что вместо этого склоняюсь к grub2.

Артем дал вам почти правильную ссылку, та, которая вам действительно нужна, это отличная книга Рода Управление загрузчиками EFI для Linux :Основные принципы

PS :возможно, пригодится ALT Rescue:)

1
18.03.2021, 23:15

Теги

Похожие вопросы