Назад | Перейти на главную страницу

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

Прямо сейчас мы создаем инструмент, который включает в себя загрузку крошечной среды 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