В вашем цикле есть короткий промежуток времени между "stty echo" в конце цикла и "stty -echo" в следующая итерация. Ввод с клавиатуры, полученный во время этого окна, будет отражен, даже если команда чтения не ожидает этого. Если вам не нужны эхо, не называйте "stty echo"
Это можно сделать вручную с помощьюdd skip=
. На моем Ubuntu 20.04 я могу посмотреть первую часть (со смещением 0 блоков )с
# dd if=/boot/initrd.img-5.4.0-45-generic skip=0 | file -
/dev/stdin: ASCII cpio archive (SVR4 with no CRC)
, а затем просмотреть содержимое
# dd if=/boot/initrd.img-5.4.0-45-generic skip=0 | cpio -it
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/AuthenticAMD.bin
62 blocks
Вторая часть на 62 блока дальше
# dd if=/boot/initrd.img-5.4.0-45-generic skip=62 | file -
/dev/stdin: ASCII cpio archive (SVR4 with no CRC)
и снова простой архив cpio, но на этот раз большего размера
# dd if=/boot/initrd.img-5.4.0-45-generic skip=62 | cpio -it
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/.enuineIntel.align.0123456789abc
kernel/x86/microcode/GenuineIntel.bin
5868 blocks
Теперь пропустите 5868 + 62
блоков в initramfs
# dd if=/boot/initrd.img-5.4.0-45-generic skip=5930 | file -
/dev/stdin: LZ4 compressed data (v0.1-v0.9)
На этот раз это сжатый поток, поэтому
# dd if=/boot/initrd.img-5.4.0-45-generic skip=5930 | lz4cat | file -
/dev/stdin: ASCII cpio archive (SVR4 with no CRC)
И снова мы нашли очередной (и последний )cpio-архив
# dd if=/boot/initrd.img-5.4.0-45-generic skip=5930 | lz4cat | cpio -it
... lots of output
usr/share/plymouth/themes/spinner/watermark.png
usr/share/plymouth/ubuntu-logo.png
var
var/cache
var/cache/fontconfig
var/cache/fontconfig/383ee5b3-5437-4bdc-87f6-cf314658a7c0-le64.cache-7
var/cache/fontconfig/575cffd4-ae01-4067-914f-7545fe566c1b-le64.cache-7
var/cache/fontconfig/CACHEDIR.TAG
var/cache/fontconfig/c467a813-186f-476e-880a-3770402989a9-le64.cache-7
var/cache/fontconfig/d912fc4e-f5b6-456d-a86d-e4c3ccbbefe9-le64.cache-7
var/lib
var/lib/dhcp
450460 blocks
Однако это работает только в том случае, если первые потоки несжаты. В противном случае cpio сообщит размер не в initramfs, а в несжатой части.