Почему fsck не работает на меня?

У меня есть некоторые поврежденные секторы на моем жестком диске, таким образом, я следовал руководству с этого веб-сайта

Для обнаружения поврежденных секторов я сделал следующую команду:

sudo badblocks /dev/sda5 > /media/3865-6163/sda5

Это хорошо работало, следующий шаг должен выполнить следующую команду:

sudo fsck -l /media/3865-6163/sda5 /dev/sda5

По некоторым причинам это не работает на меня и дает мне следующее сообщение:

ubuntu@ubuntu:/media/3865-6163$ sudo fsck -l /media/3865-6163/sda5 /dev/sda5
fsck from util-linux 2.20.1
Usage: fsck.ext4 [-panyrcdfvtDFV] [-b superblock] [-B blocksize]
        [-I inode_buffer_blocks] [-P process_inode_size]
        [-l|-L bad_blocks_file] [-C fd] [-j external_journal]
        [-E extended-options] device

Emergency help:
 -p                   Automatic repair (no questions)
 -n                   Make no changes to the filesystem
 -y                   Assume "yes" to all questions
 -c                   Check for bad blocks and add them to the badblock list
 -f                   Force checking even if filesystem is marked clean
 -v                   Be verbose
 -b superblock        Use alternative superblock
 -B blocksize         Force blocksize when looking for superblock
 -j external_journal  Set location of the external journal
 -l bad_blocks_file   Add to badblocks list
 -L bad_blocks_file   Set badblocks list
ubuntu@ubuntu:/media/3865-6163$ 

Почему это не работает?

0
задан 20 November 2012 в 22:52

2 ответа

Ну, на man-странице для e2fsck (приложение вызывается оболочкой fsck, если его файловая система ext2 / 3/4) говорится следующее

Note that the block numbers are based on  the  blocksize  of  the  filesystem.
Hence,  badblocks(8) must be given the blocksize of the filesys‐
tem in order to obtain correct results.  As a result, it is much
simpler  and safer to use the -c option to e2fsck, since it will
assure that the correct parameters are passed to  the  badblocks
program.

Так что просто используйте

sudo e2fsck -c /dev/sda5
0
ответ дан 20 November 2012 в 22:52

Вы не хотите использовать badblocks. Современные диски SMART и способны сообщать об ошибках и переназначать любые сектора, которые являются плохими, в резервный пул. Привод может переназначить сектора только при попытке записи в них. Если дисковая утилита сообщает, что диск имеет несколько ожидающих перераспределений, вы можете заставить их произойти, записав нули на весь диск:

sudo dd if=/dev/zero of=/dev/sda

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

Если у вас есть какие-либо сектора, которые все еще находятся в состоянии ожидания или недоступны, или несколько перераспределенных секторов, вам необходимо заменить диск.

0
ответ дан 20 November 2012 в 22:52

Другие вопросы по тегам:

Похожие вопросы: