Прямо сейчас мы создаем инструмент, который включает в себя загрузку крошечной среды Linux через PXE и выполнение ряда операций по настройке системы без загрузки более крупной системы. (Форматирование дисков, создание файловых систем и т. Д.). Мы планировали использовать BusyBox в этой системе, поскольку наличие большинства системных инструментов в одном крошечном статическом двоичном файле, очевидно, отлично в этом контексте.
Однако проблема: у нас изменились требования, и нам нужна поддержка для создания файловых систем ext3 (и, возможно, ext4), которые BusyBox не поддерживает. Кто-нибудь знает об аналогичном автономном двоичном инструменте, который можно использовать для создания этих файловых систем? Это не обязательно должен быть BusyBox (я могу включить несколько дополнительных инструментов), но он не может требовать кучу динамических библиотек.
Скомпилируйте e2fsprogs со статической компоновкой и выберите из него нужные вам двоичные файлы. Вам, вероятно, понадобится только mke2fs (что делает все виды файловых систем серии EXT - mkfs.ext4 - это просто символическая ссылка на него.
Если вы не можете заставить статическую компиляцию работать, "ldd mke2fs" по крайней мере покажет, какие библиотеки вам нужно установить.
Я выполнил следующие команды для компиляции e2fsprogs
упак. статически для таргетинга 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