Si es GNU sed
, prueba esto
$ sed -z 's/\n/ /g' file2
this is not is is is this biz
$
tr
hace un trabajo igualmente bueno.
$ tr '\n' ' ' <file2
this is not is is is this biz
$
Решено:
Аргумент ядра:
earlyshell
на самом деле не запустил оболочку??? Но запуск ядра с аргументом:
break=premount
дал мне оболочку initramfs.
Этот ресурс оказался очень полезным:https://wiki.debian.org/InitramfsDebug
Вы дали kexec правильный --initrd=
?
Я только что установил и попробовал kexec. Это работает, если я пойду
kexec -l /boot/vmlinuz --initrd=/boot/initrd.img --append=root=/dev/sda3
А затем kexec -e
. (у меня нет расшифровки...)
Сначала я попытался следовать подсказке «использовать /proc/cmdline
», но это не сработало. Мне кажется, что вы должны указать опцию --initrd=
дополнительно.
Вам нужна «подсказка initramfs», чтобы указать пароль (, чтобы вы могли смонтировать зашифрованное устройство )?
Обычно мой /proc/cmdline
выглядит так
vmlinuz initrd=initrd.cpio.gz root=/dev/sda3
После вышеуказанного kexec (и перезагрузки)/proc/cmdline
выглядит так
root=/dev/sda3
Имя ядра и initrd исчезли! Остается только часть--append . Это даже не слишком меня смущает :просто добавляет новую грань к вопросу :образ ядра и образ initrd параметры ядра ? Являются ли они частью командной строки (ядра)?
Для загрузки я использую оболочку uefi. Я знаю, насколько важен этот "initrd=". С загрузчиком (grub )должно работать так же. Это просто другой способ (непрямой )выбор ядра, initrd (, если необходимо/желательно ), рут, инициализация и все обычные «параметры ядра»
Стандартный initrd делает это:
загружать модули для доступа к root (мой корпус :sata, ahci для моего SIMPLE SSD диска)
смонтировать это устройство (, заданное root=/dev/xxx)
"переключить _корень" на него (включает запуск /sbin/init)
В вашем случае вам нужен запрос пароля (? ), а не модуль sata -. Но результат тот же :root не может быть смонтирован.
Узнайте, как успешно загружается ваш загрузчик, а затем попробуйте имитировать это с помощью kexec.
добавлено:
имена initrd (не имеют значения...)запускается по умолчанию со сценарием /init
(проверьте параметр загрузки rdinit=
). Это «раннее пользовательское пространство», соответствующее Earlyshell. Похоже, с этим initramfs-tool
у вас достаточно точек останова для управления /init и вызываемыми скриптами.
В противном случае можно извлечь этот initrd (с помощью gzip
и cpio
), изменить /init (или добавить /init _new и go rdinit=/init _new в качестве параметра загрузки )и снова заархивируйте папки. Эту команду cpio я никогда раньше не использовал, но на самом деле она проще, чем tar. Просто немного другой.
mkinitcpio
является инструментом для этого. В самом начале упоминается как раннее пользовательское пространство, так и шифрование. Я только что прочитал, что это Archlinux, а также есть поздние и ранние «зацепки». Думаю, та же функция, что и у инструментов initramfs -.