Сделал себе для встроенной системы на VIA CLE266 специальный initrd, который подключает к /dev/loop7 squashfs-ный файл. После того, как initrd отработал и ядро пытается монтировать /, получаю: bio too big device loop7 (2>0) Гугл подсказывает, что это бага busybox: http://bugs.busybox.net/view.php?id=498 Обновление busybox до самосборного 1.2.2 решает проблему. Ядро самосборное (std26-up-2.6.16-alt13 + bootsplash patch), но бага проявляется и на сизифном.
Свежие версии busybox не собираются с dietlibc как раз из-за того, что в dietlibc входит устаревший файл include/linux/loop.h. (Похоже, что от dietlibc в этом месте нужно избавляться - в частности, там до сих пор используется 16-разрядный dev_t.)
Я смотрю в сторону klibc + klibc-utils (и заодно initramfs вместо initrd). Это правильное направление? Имеет ли смысл собрать klibc-utils и положить в Сизиф?
FWIW, на ядре std26-up=2.6.12-alt4 это ещё не проявляется, а на std26-up=2.6.14-alt3 уже проявляется.
klibc в Сизифе сейчас есть, но в klibc-utils нет losetup - если это действительно нужно, придётся приделывать. Впрочем, mkinitrd-busybox сейчас обновлён до 1.3.2 - там losetup есть, но я не проверял, правильно ли он работает. (При проверке придётся указывать --type romfs - монтирование loop в initramfs сейчас не поддерживается).
Видимо, эту багу давно починили. Пора закрывать.
.