Восстановление диска из однопользовательского режима (сбой fsck)

21

Ранее сегодня мой iMac 2009 выдавал ошибки ввода-вывода при попытке скопировать файлы. Поэтому я запустил утилиту диска, проверил диск, чтобы убедиться, что что-то не так. Это было. Но так как это мой загрузочный диск, я не смог его починить, поэтому я попробовал безопасный режим. Безопасный режим сработал в самый первый раз, но при перезагрузке он показывает заполнение индикатора выполнения перед остановкой. Каждый раз, когда я включаю его сейчас, происходит один и тот же индикатор выполнения, после чего происходит сбой. Загрузка в подробном режиме показывает, что fsck не работает с сигналом 8.

В однопользовательском режиме, поскольку я знаю, что единственный способ получить доступ к системе - это запуск fsck_hfs. Однако это всегда терпит неудачу. Ниже приведен вывод fsck_hfs -d / dev / disk0s2.

** /dev/rdisk0s2
        Using cacheBlockSize=32K cacheTotalBlock=65536 cacheSize=2097152K.
** Root file system
   Executing fsck_hfs (version diskdev_cmds-491.6~3).
** Verifying volume when it is mounted with write access.
** Checking Journaled HFT Plus volume.
** Checking extents overflow file.
** Checking catalog file.
   Missing thread record (id = 9931104)
   Missing thread record (id = 16434146)
   Missing thread record (id = 19370458)
disk0s2: I/O error
hfs_swap_BTNode: offsets 10 and 11 out of order (0x0000, 0x0000)
   Invalid node structure
(4, 115897)
** The volume Macintosh HD could not be verified completely.
        volume check failed with error 7
        volume type is pure HFS+
        primary MDB is at block 0 0x00
        alternate MDB is at block 0 0x00
        primary VHB is at block 2 0x02
        alternate VHB is at block 1952491198 0x74622d5e
        sector size = 512 0x200
        VolumeObject flags = 0x07
        total sectors for volume = 1952591200 0x74622d60
        total sectors for embedded volume = 0 0x00

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

Максимум
источник
Какую версию OS X вы используете?
nohillside
Извините, должен был сказать. Это работает снежный барс.
Макс
1
Если у вас все еще есть установочный DVD, вы можете загрузиться с него и запустить Repair Disk.
nohillside
Никогда не было установочного DVD, он был предустановлен. Я думал о том, чтобы попытаться сжечь один с этим старым ноутбуком, который я выкопал. Я также рассматривал DiskWarrior, возможно ли это исправить?
Макс
1
И «launchd'ing» я имею в виду: launchctl load /System/Library/LaunchDaemons/com.apple.kextd.plist launchctl load /System/Library/LaunchDaemons/com.apple.notifyd.plist launchctl load /System/Library/LaunchDaemons/com.apple.configd.plist launchctl load /System/Library/LaunchDaemon/com.apple.DirectoryServices.plist я тогда сделал некоторые другие вещи, не знаю , если это было необходимо, а затем shutdown -h now, а когда это не сработало, exit.
Макс

Ответы:

4

Около трех лет назад я столкнулся с той же самой проблемой, с которой вы столкнулись. Проблема с самим жестким диском - ничего не связано с программным обеспечением. Отнесите его в ближайший / лучший ремонтный магазин Apple, и пусть они заменят ваш жесткий диск. Затем вы можете восстановить всю вашу информацию из резервной копии. Вы делаете резервную копию своего компьютера, не так ли?

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

Matt
источник
У iFixit есть процедуры DIY для замены жесткого диска. Но вам нужен установочный DVD или флешка, которую вы можете позаимствовать у друга.
Мувисиэль
Вы правы, это был неисправный жесткий диск, а не просто хитрые записи в файловой системе. У меня есть резервные копии, в частности Time Machine, но в итоге я просто использовал DiskWarrior для создания «предварительного просмотра» жесткого диска, клонирования его на внешний диск и загрузки с внешнего диска. Это временно, пока я не получу возможность заменить внутренний жесткий диск, но в данный момент все работает без сбоев.
Макс
14

Вы можете попытаться принудительно fsck_hfsперестроить каталог, запустив

fsck_hfs -Rc -d /dev/disk0s2

или (если вы хотите избежать необходимости отвечать на запросы)

fsck_hfs -y -Rc -d /dev/disk0s2

Конечно, это только исправит логические повреждения и продолжит давать сбой, если сам диск поврежден.

Nohillside
источник
1
Я на самом деле пробовал это с -r (-Rc, похоже, не работает). Он всегда выдавал ошибку «неверная структура узла», а «неверная длина ключа» только в 75% случаев.
Макс
Это не сулит ничего хорошего :-(
nohillside
1
Ты спас мой день!
カ オ ナ シ
Выполнение этой команды дважды исправило мой диск, когда Дисковая утилита не смогла. Хотя Дисковая утилита по-прежнему сообщает об ошибках в файловой системе, по крайней мере том, подключенный после перезагрузки. Благодарность!
зиггуризм
8

Я нашел эту страницу через Google, и я оставляю это здесь. Получив ту же «недопустимую структуру узлов» и отказавшись загружаться, я смог пройти серый экран и загрузить свой рабочий стол, выполнив следующие действия:

  1. Загрузка в однопользовательском режиме (cmd + s при запуске)

  2. Смонтировать отказавший жесткий диск

    /sbin/mount -uw /

  3. Выйдите из однопользовательского режима, набрав «exit» в командной строке

  4. (Не уверен, что этот шаг необходим.) Нажмите кнопку включения / выключения один раз.

Выполнение вышеизложенного загрузило мой Macbook (на котором установлен Snow Leopard) на рабочий стол, минуя неудачную проверку fsck и позволив мне выполнить своевременное резервное копирование машины времени. YMMV, но я надеюсь, что это кому-то поможет.

discoloop
источник
1
Это в сочетании с силой fsck_hfs работало для меня
rfabbri
1
Система может загрузиться на рабочий стол с помощью приведенных выше инструкций и выглядеть нормально, но раздел, вероятно, все еще будет поврежден и не может быть восстановлен. После предложенного резервного копирования машины времени восстановите с этого компьютера резервное копирование в режиме восстановления.
rfabbri
Вы спасатель жизни
spacetyper
3

Насколько я могу сказать:

fsck_hfs -Rc -d /dev/disk0s2

... недопустимая команда - Rдолжна быть r. Так:

fsck_hfs -rc -d /dev/disk0s2

вместо.

Фил Фабер
источник
5
Страница man для fsck_hfs(по крайней мере, 10.9) говорит, что -rэто синоним -Rc.
Мхака
3
это должен быть только комментарий к другому ответу
rfabbri
1
этот ответ, безусловно, должен быть удален и записан в качестве комментария в первоначальный парень, который предложил -Rc.
esaruoho