Fsck

Отключить

Чтобы отключить fsck на взлете, редактируем fstab, где, в строке описания опций монтирования соответствующего диска, две последние цифры (1 и/или 2) заменяем на два нуля:0 0

Делаем fsck

Когда делаем fsck вручную, оно нам предлагает указать альтернативный суперблок, так как оригинал испорчен. Man fsck нам говорит, что “An alternate super block is usually located at block 32 for UFS1, and block 160 for UFS2” Но часто это не так

Чтобы узнать, где находятся бэкапные копии суперблока, запускаем программу форматирования вольюма, но без реальной записи.

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

Узнать формат “какой было”, можно либо в /etc/fstab, либо с помощью gpart list, gpart show, либо blkid

Например:

  gpart show ada1
=>        34  5860533101  ada0  GPT  (2.7T)
          34          94        - free -  (47k)
         128     4194304     1  freebsd-swap  (2.0G)
     4194432  5856338696     2  freebsd-ufs  (2.7T)

Теперь мы имеем все основания предполагать, что формат был UFS.
По дефолту последние 5 лет используется UFS2

newfs покажет немалый список блоков, содержащих бэкап суперблока.
Опция -O позволяет задать версию UFS; в реалии же, использование -O имеет смысл только тогда, когда ковыряем “чужой” диск, форматированный на другой системе.
-O1 дает UFS1, ныне используемую крайне редко. Итак:

newfs -N /dev/ad4p2
/dev/ad4p2: 2859540.5MB (5856338696 sectors) block size 32768, fragment size 4096
	using 4568 cylinder groups of 626.09MB, 20035 blks, 80256 inodes.
super-block backups (for fsck_ffs -b #) at:
 192, 1282432, 2564672, 3846912, 5129152, 6411392, 7693632, 8975872, 10258112, 11540352, 12822592, 14104832,
 15387072, 16669312, 17951552, 19233792, 20516032, 21798272, 23080512, 24362752, 25644992, 26927232, 28209472,
 29491712, 30773952, 32056192, 33338432, 34620672, 35902912, 37185152, 38467392, 39749632,....

Теперь можно делать (например)

fsck -t ufs -v -b 15387072 /dev/ad4p2

В этом примере я очень осторожно убрал опцию -y, и поставил -v (запрашивать разрешения на любую операцию) т.к. я не уверен, что файловая система проблемного диска именно UFS2, т.е. хочу выполнить только проверку; если оно выдаст сразу массу проблем, а мы не уверены в разновидности формата файловой системы, то имеет смысл попробовать поискать адрес альтернативного суперблока не для UFS2, а для UFS1 и снова запустить проверку:

newfs -N -O1 /dev/ad4p2
/dev/ad4p2: 2859540.5MB (5856338696 sectors) block size 32768, fragment size 4096
	using 11259 cylinder groups of 254.00MB, 8128 blks, 32512 inodes.
super-block backups (for fsck_ffs -b #) at:
 64, 520256, 1040448, 1560640, 2080832, 2601024, 3121216, 3641408, 4161600, 4681792, 5201984, 5722176,
 6242368, 6762560, 7282752, 7802944, 8323136, 8843328, 9363520, 9883712, 10403904, 10924096, 11444288,
 11964480, 12484672, 13004864, 13525056, 14045248, 14565440, 15085632, 15605824, 16126016, 16646208,...

А теперь снова пускаем проверку:

fsck -t ufs -v -b 6242368 /dev/ad4p2

Но, опять без флага -y: а вдруг проблем будет еще больше?

volumes/fsck.txt · Last modified: 2015/07/11 16:15 by rybario
About this template
CC Attribution-Share Alike 4.0 International
Powered by PHP Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0 Valid HTML5