Как объединить ядро ​​Linux и initrd без компиляции?

По умолчанию sedиспользует BRE, и для использования ERE потребуется опция -Eили -r

Цитата из Руководство GNU sed

In GNU sed the only difference between basic and extended regular expressions is in the behavior of a few special characters: ‘?’, ‘+’, parentheses, braces (‘{}’), and ‘|’.

With basic (BRE) syntax, these characters do not have special meaning unless prefixed backslash (‘\’); While with extended (ERE) syntax it is reversed: these characters are special unless they are prefixed with backslash (‘\’).

поэтому для GNU sedиспользуйте

$ echo '../../sdd1' | sed 's:.*\([a-z]\{3\}\)[0-9]\?:\1:'
sdd
$ echo '../../sdd1' | sed -E 's:.*([a-z]{3})[0-9]?:\1:'
sdd

для POSIX BRE , ваша вторая команда — путь

$ echo '../../sdd1' | sed 's:.*\([a-z]\{3\}\)[0-9]\{0,1\}:\1:'
sdd

5
20.01.2018, 01:50
1 ответ

Я знаю, что это поздний ответ, но для тех, кто все еще пытается его найти, вот мое решение :вы можете создать комбинированный образ.efi с ядром, командной строкой и initramfs внутри, называемый «унифицированным образом ядра».

Ссылка:https://wiki.archlinux.org/index.php/Systemd-boot#Preparing_a_unified_kernel_image

2
21.08.2020, 07:09

Теги

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