Ответ циновки должен работать на Вас. Я хотел бы указать на другую возможность: используйте initramfs/initrd.
Можно поставить initrd (я - вполне уверенный initramfs, пост2.4, но 2.4 должен иметь initrd), который содержит некоторый код для нахождения rootfs. Преимущество initrd состоит в том, что Вы запускаете Linux в той точке. Можно записать, например, сценарий оболочки, чтобы сделать находит корневую фс. После того как Вы находите его, Вы монтируете его, pivot_root к нему, и должностное лицо/sbin/init.
Вы получаете другие хорошие вещи — например, если различным платам (теперь или в будущем) нужно было загрузить различные модули для наблюдения жесткого диска или других критических по отношению к начальной загрузке устройств, можно сделать это.
Вы могли также поставить различные вещи восстановления там, которые могут оказаться полезными.
(На современном дистрибутиве Linux корень = опция на самом деле обрабатывается initramfs.)
И:
Вы можете видеть, две команды обеспечивают одинаковые [116151] последовательности выхода ANSI[116152].
Esc[линия;колонкаH Позиция курсора:[116301] Esc[Line;Columnf Перемещает курсор на указанную позицию (координаты). Если нет [116302] укажите позицию, курсор переместится в исходную позицию в левом верхнем углу [116303]. угол экрана (строка 0, колонка 0).
Esc[2J Стереть дисплей: [116304] Очищает экран и перемещает курсор в исходную позицию [116305] (строка 0, столбец 0).
Возможно, это легче понять на выходе [116131]od -c[116132]:033[116134] это [116135]Esc[116136], поэтому на выходе выше просто [116137]Esc[H[116138], а затем [116139]Esc[2J[116140].[115770].
Во-первых, /bin/echo -e "\x1b\x5b\x48\x1b\x5b\x32\x4a\c" на самом деле не очищает экран. Вы можете прокрутить вверх, чтобы увидеть предыдущее содержимое.
Во-вторых, я открыл IRB (, интерактивную оболочку Ruby ), и набрал:
p `clear`
Или
p %x(clear)
Или:
require 'open3'
p Open3.capture2('clear')[0]
Все коды должны вернуться"\e[3J\e[H\e[2J"
Теперь откройте терминал, введитеecho -e "\e[3J\e[H\e[2J"
Экран должен очиститься. Они называются управляющими последовательностями ANSI :
.https://en.wikipedia.org/wiki/ANSI_escape_code
Вы можете использовать эти коды, чтобы мигать текст (\e[5m
), раскрашивать текст:(for i in {0..255} ; do printf "\e[38;5;${i}m${i} " ; done ; echo
)и многое другое!