У меня есть некоторые поврежденные секторы на моем жестком диске, таким образом, я следовал руководству с этого веб-сайта
Для обнаружения поврежденных секторов я сделал следующую команду:
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$
Почему это не работает?
Ну, на 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
Вы не хотите использовать badblocks
. Современные диски SMART и способны сообщать об ошибках и переназначать любые сектора, которые являются плохими, в резервный пул. Привод может переназначить сектора только при попытке записи в них. Если дисковая утилита сообщает, что диск имеет несколько ожидающих перераспределений, вы можете заставить их произойти, записав нули на весь диск:
sudo dd if=/dev/zero of=/dev/sda
После этого больше не должно быть ожидающих секторов. Если сектора были физически повреждены, количество перераспределенных секторов увеличится. Если данные были просто зашифрованы, запись нулей на носитель исправила их без необходимости перераспределения сектора.
Если у вас есть какие-либо сектора, которые все еще находятся в состоянии ожидания или недоступны, или несколько перераспределенных секторов, вам необходимо заменить диск.