10 Oct 24, Eugene Grosbein wrote to Yuri Kosivtsov:
EG> Поиск в гугле по запросу UFS1 superblock failed: "fs->fs_size" EG> даёт единственную ссылку, она же правильный ответ: EG> https://lists.freebsd.org/archives/dev-commits-src-all/2022-November/0 EG> 19207.html EG> То есть, начиная с ветки 13.x, проверка суперблока при монтировании EG> стала более строгой и больше не игнорирует несуразности в нём. EG> Эти несуразности должен исправлять fsck_ffs, так что тебе нужно EG> сделать fsck_ffs -y /dev/ada0s1a на свежей версии, ну и для остальных EG> fs тоже.
Исправить должен, но не исправил. Запустил fsck_ffs, получил: === Cut === UFS1 superblock failed: fs->fs_size (0) < 8 * fs->fs_frag (64) UFS1 superblock failed: fs->fs_size (0) <= ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg (190464) UFS1 superblock failed: fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize) (1) > fs->fs_size (0) UFS1 superblock failed: fs->fs_csaddr (0) < cgdmin(fs, dtog(fs, fs->fs_csaddr)) (1112) Attempted recovery for standard superblock: failed Attempt extraction of recovery data from standard superblock. Try cg 0 at sblock loc 32 UFS1 superblock failed: fs->fs_size (0) < 8 * fs->fs_frag (64) UFS1 superblock failed: fs->fs_size (0) <= ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg (190464) UFS1 superblock failed: fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize) (1) > fs->fs_size (0) UFS1 superblock failed: fs->fs_csaddr (0) < cgdmin(fs, dtog(fs, fs->fs_csaddr)) (1112) Try cg 1 at sblock loc 380960 UFS1 superblock failed: fs->fs_size (0) < 8 * fs->fs_frag (64) UFS1 superblock failed: fs->fs_size (0) <= ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg (190464) UFS1 superblock failed: fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize) (1) > fs->fs_size (0) UFS1 superblock failed: fs->fs_csaddr (0) < cgdmin(fs, dtog(fs, fs->fs_csaddr)) (1112) Try cg 2 at sblock loc 761888 UFS1 superblock failed: fs->fs_size (0) < 8 * fs->fs_frag (64) UFS1 superblock failed: fs->fs_size (0) <= ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg (190464) UFS1 superblock failed: fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize) (1) > fs->fs_size (0) UFS1 superblock failed: fs->fs_csaddr (0) < cgdmin(fs, dtog(fs, fs->fs_csaddr)) (1112) Finding an alternate superblock failed. Check for only non-critical errors in standard superblock UFS1 superblock failed: fs->fs_size (0) < 8 * fs->fs_frag (64) UFS1 superblock failed: fs->fs_size (0) <= ((int64_t)fs->fs_ncg - 1) * fs->fs_fpg (190464) UFS1 superblock failed: fs->fs_csaddr + howmany(fs->fs_cssize, fs->fs_fsize) (1) > fs->fs_size (0) UFS1 superblock failed: fs->fs_csaddr (0) < cgdmin(fs, dtog(fs, fs->fs_csaddr)) (1112) Failed, superblock has critical errors SEARCH FOR ALTERNATE SUPER-BLOCK FAILED. YOU MUST USE THE -b OPTION TO FSCK TO SPECIFY THE LOCATION OF AN ALTERNATE SUPER-BLOCK TO SUPPLY NEEDED INFORMATION; SEE fsck_ffs(8). === Cut ===
на других разделах аналогично, только букв побольше, везде вывод, что неисправимо. И не монтирует.
Проблему решил следующим образом. Вытащил оба винчестера и с 4.11 и с 14.1 и вставил в старый комп, на котором есть сидюк. Загрузился с сидюка Frenzy 1.4 (live cd на основе FreeBSD 8.3). И восьмерка увидела и дала смонтировать все, и диск от 14 (geom) и от 4 (mbr). Далее таром перенес нужную информацию. То есть проблема исключительно в совместимости новых версий со старыми (проще говоря сломали систему, пытаясь улучшить).
Вот теперь думаю, а нужна ли мне новая фря, если ее так ломают? Под любой самой современной виндой я с легкостью прочитаю диск с FAT 12 от MSDOS 2.0. А тут абсолютно тривиальная задача переноса информации потребовала недель на решение.