|
www.lissyara.su
—> статьи
—> FreeBSD
—> Файловая система
—> badsect
badsect - программа для перемещения bad-блоков в файлы.
Автор: lissyara.
Badsect - программа, создаёт файл с дефектным сектором. (вернее сказать, она помещает дефектные секторы в отдельные файлы - каждый в свой.) Нужно это в том случае, если посыпался диск, заменить его прямо сейчас нельзя, а работать надо. Обычная, в общем-то ситуация...
Итак. У программы всего два параметра - директория, где должны размещаться файлы с бэд-блоками и номер битого сектора.
/usr/home/lissyara/>su
/usr/home/lissyara/>df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/ad0s1a 248M 115M 113M 51% /
devfs 1.0K 1.0K 0B 100% /dev
/dev/ad0s1e 14G 5.2G 7.3G 42% /usr
/dev/ad0s1f 3.5G 593M 2.7G 18% /var
/dev/ad8s1 73G 63G 5.0G 93% /usr/local/smb
/dev/ad0s1d 989M 1.4M 909M 0% /tmp
/usr/home/lissyara/>mkdir /tmp/bad-sect
/usr/home/lissyara/>badsect /tmp/bad-sect 104100
Don't forget to run ``fsck /dev/ad0s1d''
/usr/home/lissyara/>badsect /tmp/bad-sect 104101
Don't forget to run ``fsck /dev/ad0s1d''
/usr/home/lissyara/>badsect /tmp/bad-sect 104102
Don't forget to run ``fsck /dev/ad0s1d''
/usr/home/lissyara/>badsect /tmp/bad-sect 104103
Don't forget to run ``fsck /dev/ad0s1d''
/usr/home/lissyara/>badsect /tmp/bad-sect 104104
Don't forget to run ``fsck /dev/ad0s1d''
/usr/home/lissyara/>badsect /tmp/bad-sect 104105
Don't forget to run ``fsck /dev/ad0s1d''
/usr/home/lissyara/>ls -lah /tmp/bad-sect
ls: 104100: Bad file descriptor
ls: 104101: Bad file descriptor
ls: 104102: Bad file descriptor
ls: 104103: Bad file descriptor
ls: 104104: Bad file descriptor
ls: 104105: Bad file descriptor
ls: 104448: Bad file descriptor
ls: 104449: Bad file descriptor
total 4
drwxr-xr-x 2 root wheel 512B 1 янв 02:22 .
drwxrwxrwt 12 root wheel 1,0K 1 янв 01:58 ..
/usr/home/lissyara/>umount -f /tmp
/usr/home/lissyara/>fsck /dev/ad0s1d
** /dev/ad0s1d
** Last Mounted on /tmp
** Phase 1 - Check Blocks and Sizes
HOLD BAD BLOCK? [yn] y
INCORRECT BLOCK COUNT I=8 (0 should be 4)
CORRECT? [yn] y
26112 DUP I=9
UNEXPECTED SOFT UPDATE INCONSISTENCY
HOLD BAD BLOCK? [yn] y
26112 DUP I=16
UNEXPECTED SOFT UPDATE INCONSISTENCY
INCORRECT BLOCK COUNT I=16 (0 should be 4)
CORRECT? [yn] y
HOLD BAD BLOCK? [yn] y
INCORRECT BLOCK COUNT I=17 (0 should be 4)
CORRECT? [yn] y
HOLD BAD BLOCK? [yn] y
26025 DUP I=18
UNEXPECTED SOFT UPDATE INCONSISTENCY
INCORRECT BLOCK COUNT I=18 (0 should be 4)
CORRECT? [yn] y
HOLD BAD BLOCK? [yn] y
26025 DUP I=19
UNEXPECTED SOFT UPDATE INCONSISTENCY
INCORRECT BLOCK COUNT I=19 (0 should be 4)
CORRECT? [yn] y
HOLD BAD BLOCK? [yn] y
26025 DUP I=20
UNEXPECTED SOFT UPDATE INCONSISTENCY
INCORRECT BLOCK COUNT I=20 (0 should be 4)
CORRECT? [yn] y
HOLD BAD BLOCK? [yn] y
INCORRECT BLOCK COUNT I=21 (0 should be 4)
CORRECT? [yn] y
HOLD BAD BLOCK? [yn] y
26026 DUP I=22
UNEXPECTED SOFT UPDATE INCONSISTENCY
INCORRECT BLOCK COUNT I=22 (0 should be 4)
CORRECT? [yn] y
INTERNAL ERROR: dups with -p
UNEXPECTED SOFT UPDATE INCONSISTENCY
** Phase 1b - Rescan For More DUPS
26112 DUP I=8
UNEXPECTED SOFT UPDATE INCONSISTENCY
26025 DUP I=17
UNEXPECTED SOFT UPDATE INCONSISTENCY
26026 DUP I=21
UNEXPECTED SOFT UPDATE INCONSISTENCY
** Phase 2 - Check Pathnames
DUP/BAD I=9 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 01:53 2006
FILE=/lost+found/#000009
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=8 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:21 2006
FILE=/bad-sect/104448
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=16 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:21 2006
FILE=/bad-sect/104449
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=17 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:22 2006
FILE=/bad-sect/104100
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=18 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:22 2006
FILE=/bad-sect/104101
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=19 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:22 2006
FILE=/bad-sect/104102
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=20 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:22 2006
FILE=/bad-sect/104103
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=21 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:22 2006
FILE=/bad-sect/104104
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
DUP/BAD I=22 OWNER=root MODE=100600
SIZE=2048 MTIME=Jan 1 02:22 2006
FILE=/bad-sect/104105
UNEXPECTED SOFT UPDATE INCONSISTENCY
REMOVE? [yn] n
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
FREE BLK COUNT(S) WRONG IN SUPERBLK
SALVAGE? [yn] y
SUMMARY INFORMATION BAD
SALVAGE? [yn] y
ALLOCATED FRAGS 26025-26026 MARKED FREE
BLK(S) MISSING IN BIT MAPS
SALVAGE? [yn] y
253 files, 714 used, 505773 free (77 frags, 63212 blocks, 0.0% fragmentation)
***** FILE SYSTEM MARKED DIRTY *****
***** FILE SYSTEM WAS MODIFIED *****
***** PLEASE RERUN FSCK *****
/usr/home/lissyara/>mount /tmp
/usr/home/lissyara/>ls -lah /tmp/bad-sect
total 20
drwxr-xr-x 2 root wheel 512B 1 янв 02:22 .
drwxrwxrwt 12 root wheel 1,0K 1 янв 01:58 ..
-rw------- 1 root wheel 2,0K 1 янв 02:22 104100
-rw------- 1 root wheel 2,0K 1 янв 02:22 104101
-rw------- 1 root wheel 2,0K 1 янв 02:22 104102
-rw------- 1 root wheel 2,0K 1 янв 02:22 104103
-rw------- 1 root wheel 2,0K 1 янв 02:22 104104
-rw------- 1 root wheel 2,0K 1 янв 02:22 104105
-rw------- 1 root wheel 2,0K 1 янв 02:21 104448
-rw------- 1 root wheel 2,0K 1 янв 02:21 104449
/usr/home/lissyara/>
| Вот так.
P.S. Кстати - не советую ставить опыты на рабочей машине, либо очень аккуратно выбирайте номера блоков для опытов - блок 104449, он был в /var - и в нём я увидел кусок одной из моих БД :( Было не очень обидно - я сделал дамп перед экспериментами, но всё же...
размещено: 2005-12-31,
последнее обновление: 2006-01-01,
автор: lissyara
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
Комментарии пользователей [5 шт.]