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