Как исправить сообщение Gparted: ошибка при чтении блока в секторе xxx?

Когда я попытался переместить один из моих разделов, я получил несколько сообщений об ошибках. Вот некоторые выдержки:

Move /dev/sda7 to the left  00:05:09    ( ERROR ) 

(...)

check file system on /dev/sda7 for errors and (if possible) fix them  00:00:10    ( SUCCESS )    
   e2fsck -f -y -v /dev/sda7

(...)

move file system to the left  00:04:52    ( ERROR )             
perform read-only test  00:04:52    ( ERROR )
   using internal algorithm    
   read 114013242 sectors    
   finding optimal blocksize 

(...)

read 113357882 sectors using a blocksize of 1024 sectors  00:04:36    ( ERROR ) 
   22527034 of 113357882 read    
   Error while reading block at sector 385849832    
23182394 sectors read    ( ERROR )  

(...)

libparted messages    ( INFO )          
   Input/output error during read on /dev/sda

Что мне следует сделать, чтобы эффективно переместить мой раздел?

5
задан 20.01.2020, 10:55

3 ответа

1113 Это то, что заставило меня решить мою проблему. Реакция psusi действительно помогла, однако она была слишком грубой для меня, и я потратил около трех часов, чтобы получить все это и извлечь то, что было бы интересно для меня из его поста. Мне пришлось искать в Википедии, на официальных форумах Ubuntu и спрашивать Ubuntu. Как следствие, я рассматриваю его пост как желанный намек, но не как правильный ответ.

  • Запустите Ubuntu на Live-CD.
  • Используя «Система» -> «Администрирование» -> «Gparted», отключите возможный раздел подкачки (другими словами, «swapoff»). Кроме того, запишите имя вашего поврежденного диска, в моем случае «sda»
  • В терминале выполните команду sudo badblocks -sv -b 512 <device-name>, где в моем случае следует заменить на /dev/sda. После долгого ожидания результат представляет собой список чисел, которые являются поврежденными секторами.
  • Запустите команду sudo dd if=<device-name> of=/dev/null bs=512 count=1 skip=<sector>, где я заменил на dev/sda и 385850816 первое число, данное предыдущей командой.
  • Повторите предыдущую точку для каждого номера.
  • Чтобы проверить, удалось ли вам спастись, снова введите команду sudo badblocks -sv -b 512 <device-name>. Он не должен давать (после долгого времени) никакого номера.

Насколько я понимаю, это решило мою проблему, и я снова смог переместить свой раздел. Я должен признать, что я действительно не знаю почему, поскольку команды здесь, по-видимому, предназначены только для чтения и написания команд. Но как бы то ни было, у меня больше нет проблем.

0
ответ дан 20.01.2020, 10:56
  • 1
    Если список сбойных блоков является маленьким (скажите дюжину или меньше), тогда это - хороший способ зафиксировать их. После выполнения этого, хотя, необходимо выполнить УМНУЮ длинную самопроверку в дисковой утилите еженедельно в течение нескольких месяцев и удостовериться, никакие новые поврежденные секторы не разрабатывают. Если существует много поврежденных секторов, то просто необходимо скопировать от того, что Вы можете, и заменять диск. – Kibbee 20.01.2020, 10:56

Похоже, что есть проблема с вашим жестким диском, поэтому я предлагаю вам использовать что-то вроде ddrescue или gddrescue, чтобы скопировать его на другой жесткий диск. Затем попробуйте исправить файловую систему (системы) (с помощью fsck), и если это не сработает, используйте photorec или аналогичные инструменты для восстановления.

Или просто поместите резервную копию на другой диск, если он у вас есть, конечно ...

0
ответ дан 20.01.2020, 10:56

У вас плохие сектора на жестком диске. Сделайте резервную копию любых важных данных СЕЙЧАС. Затем запустите утилиту диска и нажмите диагностику SMART. Запустите длинную самопроверку и, когда она закончится, посмотрите значения следующих атрибутов:

Offline_Unc корректируемый Current_Pending_Sector Reallocated_Sector_Ct

Если количество некорректируемых счетчиков не равно нулю или перераспределенные или ожидающие подсчеты больше, чем несколько, вам нужно заменить диск. Если есть только несколько ожидающих, то вы можете попытаться восстановить их. Сначала нужно определить номер плохого сектора. Для этого можно использовать утилиту badblocks. Затем вы можете использовать hdparm --read-sector, чтобы попытаться прочитать его, чтобы убедиться, что у вас есть правильный, и затем hdparm --write-sector, чтобы попытаться переписать сектор с нулями. Это заставит диск попытаться исправить сектор или, если это не удастся, перераспределит его из резервного пула, переместив счетчик из pending_sectors в reallocated. Повторите для всех плохих секторов.

0
ответ дан 20.01.2020, 10:57
  • 1
    Спасибо за ответ! Я привел выполнение к сбою самопроверки из-за ошибки отсчета. Вы могли предоставить больше подробную информацию о шагах для следования из того о той утилите Badblocks? – starikovs 20.01.2020, 10:58
  • 2
    Выполнение УМНОГО ( после создание резервного копирования) могло бы быть хорошей идеей действительно. В любом случае, даже если бы сектор может все еще быть перераспределен, я с подозрением относился бы к тому диску... – Stéphane 20.01.2020, 10:58

Теги

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