Wi-CAT LLC

Wireless Comprehensive Advanced Technology. Build your network now.

Wi-CAT LLC
Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

(отложено до лучших времён) busybox fsck not complete

Я понимаю, что USB функционал на последнем месте, но  столкнулся с тем, что нужен некоторый софт из entware. Отформатить флэшку в ext2 средствами роутера можно, а вот проверить файловую на ошибки после выключения света - фигвам. Прошивка из последних (7.5.29)

Вывод с консоли:

[Wive-NG-MT@/]# fsck -t ext2 /dev/sda1
fsck (busybox 1.29.3)
fsck: fsck.ext2: No such file or directory
[Wive-NG-MT@/]# fsck -t ext3 /dev/sda1
fsck (busybox 1.29.3)
fsck: fsck.ext3: No such file or directory
[Wive-NG-MT@/]# fsck -t ext4 /dev/sda1
fsck (busybox 1.29.3)
fsck: fsck.ext4: No such file or directory

Ещё хотелось бы и форматить в ext4 средствами роутера, но busybox-овский mkfs это не умеет, вроде как....

Ну это всё к бизибоксерам. Никаких правок на эту тему в бизибокс не вносилось, и если проблема вылезла то надо им репортить. Я ХЗ когда у меня время появиться.

Как бы раз форматируется то и чекаться должно, т.е. трабла таки в бизибоксе.

А так,  запускать под strace и смотреть чего оно не нашло.

Судя по всему, тупо симлинки нужные не создаются. Хотя ХЗ. Я глубоко не лез. Может поэтому Андрей отказался от бизибоксовских утилит и отдельным пакетом fs  tool компилил.

ХЗ. Какие там симлинки и куда нужны и зачем? =)) Тут не гадать надо,а смотреть, но для этого надо сначала критичные для запуска в серию дела закончить.

ИМХО на роутере оно вообще лишнее. А раздел оптвари можно с sync монтировать, что бы данные не терять ни при каких условиях. Скорость там не важна совсем.

 

Ща прошивку со strace соберу (отключил для экономии времени сборки всё лишнее для моих потребностей) и выдам результат.

Да мне от оптвари пара пакетов нужна, вот думаю не вкомпилить ли их в прошивку до кучи, чтоб мозг каждый раз не компостить.

Запустил через strace. Честно говоря опять вижу, что нет самого файла fsck.ext2:

[Wive-NG-MT@/]# strace fsck -t ext2 /dev/sda1
execve("/bin/fsck", ["fsck", "-t", "ext2", "/dev/sda1"], 0x7fffebfc /* 33 vars */) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|1<<MAP_HUGE_SHIFT, -1, 0) = 0x77ffd000
stat("/etc/ld.so.cache", 0x7fffe7b0)    = -1 ENOENT (No such file or directory)
open("/lib/libm.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=42142, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|1<<MAP_HUGE_SHIFT, -1, 0) = 0x77ffc000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\200\24\0\0004\0\0\0"..., 4096) = 4096
mmap(NULL, 110592, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77fcd000
mmap(0x77fcd000, 41780, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77fcd000
mmap(0x77fe7000, 1182, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa000) = 0x77fe7000
close(3)                                = 0
munmap(0x77ffc000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=433919, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|1<<MAP_HUGE_SHIFT, -1, 0) = 0x77ffc000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0P\304\0\0004\0\0\0"..., 4096) = 4096
mmap(NULL, 520192, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77f4e000
mmap(0x77f4e000, 420392, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77f4e000
mmap(0x77fc5000, 12031, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x67000) = 0x77fc5000
mmap(0x77fc8000, 17900, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x77fc8000
close(3)                                = 0
munmap(0x77ffc000, 4096)                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=181623, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|1<<MAP_HUGE_SHIFT, -1, 0) = 0x77ffc000
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\10\0\1\0\0\0\260\307\0\0004\0\0\0"..., 4096) = 4096
mmap(NULL, 249856, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x77f11000
mmap(0x77f11000, 181096, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x77f11000
mmap(0x77f4d000, 1399, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x2c000) = 0x77f4d000
close(3)                                = 0
munmap(0x77ffc000, 4096)                = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=433919, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=181623, ...}) = 0
close(3)                                = 0
stat("/lib/ld-uClibc.so.0", {st_mode=S_IFREG|0755, st_size=28982, ...}) = 0
open("/lib/libc.so.0", O_RDONLY)        = 3
fstat(3, {st_mode=S_IFREG|0755, st_size=433919, ...}) = 0
close(3)                                = 0
open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=181623, ...}) = 0
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|1<<MAP_HUGE_SHIFT, -1, 0) = 0x77ffc000
set_thread_area(0x78003450)             = 0
brk(NULL)                               = 0x4ba000
brk(0x4bb000)                           = 0x4bb000
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
prctl(PR_SET_NAME, "fsck")              = 0
getuid()                                = 0
rt_sigaction(SIGINT, {sa_handler=0x408fdc, sa_mask=[], sa_flags=0}, NULL, 16) = 0
rt_sigaction(SIGTERM, {sa_handler=0x408fdc, sa_mask=[], sa_flags=0}, NULL, 16) = 0
write(1, "fsck (busybox 1.29.3)", 21fsck (busybox 1.29.3))   = 21
write(1, "\n", 1
)                       = 1
open("/etc/fstab", O_RDONLY)            = 3
ioctl(3, TCGETS, 0x7fffe498)            = -1 ENOTTY (Inappropriate ioctl for device)
brk(0x4bc000)                           = 0x4bc000
read(3, "", 4096)                       = 0
close(3)                                = 0
brk(0x4bd000)                           = 0x4bd000
clone(child_stack=0x7fffe948, flags=CLONE_VM|CLONE_VFORK|SIGCHLD) = 4436
waitpid(4436, NULL, 0)                  = 4436
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=4436, si_uid=0, si_status=111, si_utime=0, si_stime=0} ---
write(2, "fsck: fsck.ext2: No such file or"..., 43fsck: fsck.ext2: No such file or directory
) = 43
exit_group(0)                           = ?
+++ exited with 0 +++

остальное вроде без ошибок.

Судя по описаниям в тырнете, fsck в базибоксе как затычка сделан и надо отдельно e2fsprog ещё к нему ставить было. Может что-то и изменилось, но вряд ли.

http://lists.busybox.net/pipermail/busybox/2007-June/061697.html

Из сырцов базибоксовского fsck:

 * fsck --- A generic, parallelizing front-end for the fsck program.
 * It will automatically try to run fsck programs in parallel if the
 * devices are on separate spindles.  It is based on the same ideas as
 * the generic front end for fsck by David Engel and Fred van Kempen,
 * but it has been completely rewritten from scratch to support
 * parallel execution.

 

Ладно я освобожусь гляну. Записал на полях. Но если вопрос только в сохранности оптвари при сохранности питания, то имхо надо sync при монтировании указать и не мучать жопу.

А то добавишь полноценные fsck и получишь "а чо так долго", на 4Тб винте. Я противник добавлнения в коробку того, что в принципе нормально работать не будет. А fsk длящийся сутками с потенциальным отвалом соплей вида usb и окончательным развалом FS это явно не норма.

 

Ок. Но тогда надо fsck из аплетов базибокса удалить и все дела. Кому надо - поставят из оптвари e2fsprogs. :)

Так пока и сделаем, дальше будет видно.

Вообще давно порываюсь сделать для всех девайсов возможность автоустановки набора из оптвари в tmpfs при загрузке. Как бы памяти достаточно и для отладочных (да и не только) каких-то вещей вполне решение.

Место на флэше тоже есть можно и туда воткнуть, но постепенно уверен 16Мб тоже съедим.

В HQ добавлены недостающие тулзы.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: