Busybox-подобные двоичные файлы, которые поддерживают ext3 и ext4?

Сейчас мы создаем инструмент, который включает в себя загрузку крошечной среды Linux через PXE и ​​позволяет ему выполнять ряд операций по конфигурации системы без загрузки более крупной системы. (Форматирование дисков, создание файловых систем и т. Д.) Мы планировали использовать BusyBox в этой системе, так как наличие большинства системных инструментов в одном крошечном статическом двоичном файле явно великолепно в этом контексте.

Проблема, однако: у нас изменились требования, и нам нужна поддержка для создания файловых систем ext3 (и, возможно, ext4), которые BusyBox не поддерживает. Кто-нибудь знает о подобном автономном двоичном инструменте, который можно использовать для создания этих файловых систем? Он также не должен быть BusyBox (я могу включить несколько дополнительных инструментов), но он не может требовать кучу динамических библиотек.

2 ответа

Решение

Скомпилируйте e2fsprogs со статической связью и выберите нужные вам двоичные файлы. Вероятно, вам нужен только mke2fs (что делает все виды файловых систем серии EXT - mkfs.ext4 - просто символическая ссылка на него.

Если вы не можете заставить работать статическую компиляцию, "ldd mke2fs" по крайней мере покажет, какие библиотеки вам нужно установить.

Я выполнил следующие команды для компиляции e2fsprogs pkg статически для ARM:

apt-get install gcc-arm-linux-gnueabi

wget http://kernel.org/pub/linux/kernel/people/tytso/e2fsprogs/v1.42.6/e2fsprogs-1.42.6.tar.bz2

tar -jxvvf e2fsprogs-1.42.6.tar.bz2

cd e2fsprogs-1.42.6

./configure CFLAGS='-g -O2 -static' CC=arm-linux-gnueabi-gcc  --host=arm-linux-gnueabi

make

После успешной компиляции вы найдете mke2fs бинарный под misc/ каталог. Чтобы убедиться, что вы сгенерировали правильный двоичный файл, проверьте двоичный формат:

$ file ./mke2fs*
./mke2fs: **ELF 32-bit LSB  executable**, **ARM,** EABI5 version 1 ...

Теперь я скопировал этот бинарный файл на целевую платформу.

Чтобы отформатировать раздел с помощью ext4:

mke2fs -t ext4  /dev/xxx
Другие вопросы по тегам