Если вы не можете смонтировать исходную файловую систему в своей среде, вы можете использовать debugfs
для проверки структуры файловой системы,и copy
файлы к вашей цели. Приложив немного усилий, вы можете написать скрипт debugfs
для просмотра, обхода, копирования исходной файловой системы во временное расположение, а затем использовать mke2fs -d
для записи в новую файловую систему или просто скопировать ее в целевое расположение напрямую.
Если вы хотите написать свой собственный код, вы можете использовать libext2fs
для открытия файловой системы, чтения дерева каталогов и рекурсивного копирования его в целевую файловую систему (, которую также можно открыть с помощью libext2fs ). Это было бы гораздо проще, чем писать собственный код для обработки формата ext4 на -диске.
Если доступ к устройству eMMC как к блочному устройству в вашей среде затруднен (, извините, я ничего об этом не знаю, только сторона ext4 ), тогда вы можете написать собственный драйвер ввода-вывода для libext2fs (, например lib/ext2fs/unix_io.c
или .../nt_io.c
), которые могут напрямую считывать/записывать устройства eMMC, а затем использовать сценарии debugfs+ или специальный инструмент копирования libext2fs.
ed
и ex
являются строковыми редакторами . У них есть своего рода пользовательский интерфейс, который может управляться строками в текстовом файле.
vi
и все его клоны, такие как VIM, являются полноэкранными редакторами . У них есть пользовательские интерфейсы, которые не обрабатывают ввод и вывод как строки текстового файла. Ввод представляет собой отдельные символы и последовательности символов, не сгруппированные в строки. Вывод — это отдельные символы и escape-последовательности и управляющие последовательности для отрисовки на видеотерминале.
Модель пользовательского ввода-вывода в виде текстовых файлов не соответствует интерактивным полноэкранным -программам TUI, не говоря уже о программах GUI.
Ваше поведение зависит от программы. Некоторые полноэкранные программы TUI -распознают, что их стандартный ввод не является терминалом, и прерывают работу, как это делает nvi
. Другие, такие как VIM, будут выдавать предупреждения, но будут обрабатывать входной файл без терминала -как ввод терминала, что приводит к несколько странному поведению для людей, которые ожидают, что ввод будет обработан как команды сценария. Третьи, такие как less
, например, явно открывают терминальное устройство для пользовательского интерфейса и не используют стандартный ввод-вывод для (его входной части ).Третьи, как и большинство оболочек (, которые, заметьте, имеют интерактивные пользовательские интерфейсы, выходящие за рамки линейного режима ), переходят в не -интерактивный режим.
Статья, написанная о Unix в 1974 году, не будет хорошим руководством по разнице между пользовательскими интерфейсами в линейном -режиме и полноэкранными пользовательскими интерфейсами -. Возможно, первый редактор Unix для видеотерминалов, Джордж Кулурис em
, был годом позже. Также в будущем были termcap, оболочки с (их собственным )редактированием командной строки и значениями по умолчанию линейной дисциплины, которые использовали не -графические специальные символы.