Я пытаюсь развернуть образ Docker (преобразованный в vmdk - контроллер Sata - vdi создан) на VirtualBox.

Это я делаю с помощью автоматизации, на этом этапе я включил последовательный порт «хост-устройство»> «путь / файл /» на виртуальной машине, чтобы я мог использовать socat для чтения и ввода против запросов на этапе развертывания.

Во время фазы инициализации, когда виртуальная машина запускается, на экране отображается предупреждение, которое никогда не перехватывает socat, вместо этого socat раскрывает следующий шаг, то есть ввод пароля, и пропускает показ этого предупреждения (ниже).

введите описание изображения здесь

После еще большего устранения неполадок я обнаружил, что socat преднамеренно помещает / преобразует символы новой строки и добавляет несколько ^ M, из-за чего я предполагаю, что это предупреждение пропускается.

Есть ли способ, которым я могу: 1. Заставьте socat не вводить ^ M без необходимости. 2. Или отключить эту подсказку?

Кстати, команда socat, которую я использую:

socat - /path/to/file,ignoreeof

Или это может быть связано со скоростью передачи данных или другими настройками (кстати, я пробовал разные скорости, но не повезло, так как он не может прочитать виртуальный порт, если я укажу скорость передачи данных)

1 ответ1

0

Если /path/to/file является именованным каналом, почему бы не использовать tee для захвата вывода канала, записи его в реальный файл и одновременного мониторинга на терминале? Как в cat /path/to/file | tee /tmp/serial.log .

Если я вас правильно понял, вам не нужно ничего вводить, пока не будет запрошен пароль, и перед этим будет отображаться предупреждение. Затем вы можете просмотреть /tmp/serial.log с помощью less или текстового редактора и прочитать все, что можно прочитать.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .