Мой ответ основан на подсказке Стрелы. Я не эксперт в sed
, поэтому я верю в лучшее решение, чем это, но пока оно работает.
Стратегия заключалась в том, чтобы преобразовать мой файл в шестнадцатеричный с помощью xxd
, а затем преобразовать шестнадцатеричный в целочисленный.
Кодировать:
xxd -p $1 | sed 's/.\{2\}/& /g' | sed 's/[^ ]* */0x&/g' | awk '{ for(i=1;i<=NF;i++) printf("%i ",$i); print ""; }' > $2
Декодировать:
awk '{ for(i=1;i<=NF;i++) printf("%02x ",$i); print ""; }' $IN > $OUT
xxd -p -r $OUT $OUT_IMAGE_NAME.jpg
rm $OUT
Начиная с 2019 -10 -06 помимо установки базового пакета необходимо установить ядро.
Таким образом, вы должны установить либо linux, либо linux -lts (, либо другое ядро по вашему выбору ), которое будет получать пакет mkinitcpio в качестве зависимости.
В инструкциях от до -до -даты упоминается, что вы должны сделать:pacstrap /mnt base linux linux-firmware
Таким образом, в вашем случае в основном вы должны выполнять pacstrap /mnt linux linux-firmware
вне chroot, и тогда вы получите инструмент mkinitcpio, доступный после входа в chroot.
Видео, которое вы упомянули, датировано 2014 годом, так что не принимайте во внимание эту модификацию. В 6 :29 вы можете видеть, что пакет linux извлекается, когда он устанавливает базу, но это больше не так (, вы можете проверить в /mnt/var/log/ pacman.log, что пакет Linux не установлен ).
Возможно, внутри среды chroot эта команда отсутствует на вашем пути.
Пожалуйста, попробуйте внутри chroot:
/sbin/mkinitcpio -p Linux
и, если это не сработает,
/usr/sbin/mkinitcpio -p Linux
и сообщите нам, если это не сработает.