Восстанавливаем данные с диска на Mac из Single User mode
В рунете вообще довольно скудно описывается работа с жестким диском на компьютерах Apple. В основном, всё сводится к описанию работы с Дисковой утилитой, оно и понятно, большинству обычных пользователей, её возможностей хватает с головой.
Хорошо покопавшись, можно отыскать описание терминальной diskutil. Ведь бывают случаи, когда графическая оболочка недоступна или требуется получить расширенную информацию о разделах и структуре диска. Однако, сегодня мы копнем еще глубже.
Товарищ приволок Macbook Pro с весьма странной проблемой - при попытке войти в учетную запись, компьютер выключается... и вроде как в этот момент слышится характерный щелчок жесткого диска.
Ясное дело, что с диском что-то не так. Сперва пошел простым путем - гружу OS X в режиме восстановления системы, удерживая клавишу Option(Alt) или клавиши Cmd+R при запуске компьютера. О режиме восстановления я писал ранее в статье как сбросить забытый пароль в OS X.
Мы получаем возможность воспользоваться Дисковой утилитой или проверить диск из командной строки командой diskutil (возможно позднее напишу о ней подробнее). Вот только в моем случае, ничего путного из этой затеи не вышло. Дисковая утилита и diskutil видят что диск с ошибками, но ничего сделать с этим не могут!
Всплыл один неприятный момент, вернее даже два...
Во-первых, мой товарищ добавив SSD в свою прошку, сделал Fusion Drive. Это такая фирменная технология Apple, позволяющая из двух дисков, SSD и обычного сделать гибридный. В сети ходит ошибочное мнение что это своего рода RAID-массив 1-ого уровня, ничего подобного. Кому интересно, может изучить данную тему более подробно самостоятельно.
Во-вторых включена система FileVault, которая защищает данные на диске, автоматически шифруя его содержимое. Честно говоря не знаю, может в Yosemite она активируется по умолчанию, как-то не проверял, надо будет ознакомиться с данным вопросом в свободное время.
Короче, дисковые утилиты оказались бессильны, Fusion Drive монтировался исключительно в режиме чтения. Кстати, отдельная проверка диска на bad-блоки (с извлечением последнего из тушки ноутбука) показала что диск в хорошем состоянии, не мальчик конечно, но бэдов нет.
Дальнейшее гугление уже буржуйского интернета подкинуло идею загрузиться в Single User Mode. Данный режим заботы хорошо знаком мне еще по FreeBSD, позволяет получить неограниченные права суперпользователя и делать с системой вообще всё что вздумается на свой страх и риск. Да, никаких графических оболочек тут нет в принципе.
Восстановление данных Mac OS X из Single User Mode
Для загрузки в однопользовательский режим (Single User Mode) нажимаем и удерживаем Cmd+S при включении компьютера. После всякой лабуды на экране, появится командная строка. Вообще там в конце есть подсказка что нужно сделать для монтирования диска в режиме записи. Требуется выполнить всего две команды:
/sbin/fsck –fy /sbin/mount –uw /
Первая осуществляет проверку диска, а вторая собственно и монтирует ваш диск в режиме записи. Конечно, не совсем правильно писать диск, но так проще для понимания, не хочу сильно отходить от темы.
Для меня осталось загадкой что же случилось с диском, но даже в этом режиме он завершил проверку с ошибкой и в результате отказался монтироваться на запись.
Осталось одно - спасать данные на внешний диск и ставить систему начисто.
Подключение внешнего жесткого диска или флешки из терминала OS X
Из закромов был извлечен жесткий диск достаточного объема, я заранее отформатировал его в родной для мака системе HFS. Желательно использовать именно её, ведь NTFS на запись не поддерживается, а FAT32 имеет ограничение на размер файлов и об этом не стоит забывать. Конкретно в моем случае нужно было вернуть образ виртуальной машины, а он явно превышал 4 Гига, выше которых не может писать система FAT32.
Ок. Диск отформатирован и физически подключен к компьютеру. Осталось подмонтировать его в файловую систему.
Смотрим какие диски и разделы вообще подключены командой ls -l /dev/disk*:
ls -l /dev/disk* у меня выдался такой список /dev/disk0 /dev/disk0s1 /dev/disk0s2 /dev/disk0s3 /dev/disk1 /dev/disk1s1 /dev/disk1s2 /dev/disk1s3 /dev/disk2 /dev/disk2s1 /dev/disk2s2
Здесь disk0 и disk1 - это как раз диски, входящие в Fusion Drive, а disk2 - мой подключенный внешний диск. Осталось его подмонтировать в систему:
mount_hfs /dev/disk2s2 /Volumes/
Вопрос почему я подключил именно disk2s2 оставлю вам на самостоятельно изучение, подскажу только куда копать - ищите что такое слайсы в FreeBSD, там об этом подробно написано :)
Я, честно говоря, не понял почему запросто смог увидеть каталоги пользователей и файлы в них, при включенной системе FileVault - видимо большой пробел в моем образовании. Но главное результат - осталось просто скопировать содержимое каталога пользователя на подмонтированный диск.
cp -Rv /Users/troy/* /Volumes/
С командой cp, наверное вы знакомы, опция -R означает копировать все содержимое каталогов и подкаталогов, а -v просто вываливает на экран информацию что именно копируется в данные момент. Красиво :)
Не знаю, кто это вообще читать будет, но вот захотелось поделиться. В принципе тут нет ничего суперсложного, но вдруг кому и пригодится мой опыт.
Комментариев: 9
Познавательный опыт да и читать было интересно. Спасибо что пишете свои материалы, а не копируете как остальные, потому и подписался на ваш блог :)
Добрый день!
Инструкция отличная! Но у меня не получилось:( мак пишет что неизвестная команда когда пытаюсь обнаружить доступные диски. Тестирование диска говорит, что все ок.
Что делать?
Проблема изначальная в том что при установке Yosemite комп перестал включатся.
Можете подсказать как выкачать инфо с диска на внешний диск?
Спасибо! Очень помогло сохранить всю инфу с Mac.
б. Проверьте диск утилитой fsck. (команда /sbin/fsck –fy)
После этой команды вижу
В ряду остального disk full error
The volume Macintosh HD could not be repaired
/dev/rdisck0s2 (hfs) EXITED WITH SIGNAL 8
Ноутбук мак не загружается, только с нажатым альт и выбором системы виндовс, видна стоит давно, проблема возникла при пере загрузке из виндовс в мак. Подскажите что делать. Под видной грузятся нормально
Спасибо огромное! очень толково все, даже для заядлого виндофила помогла инструкция. единственное что проблема была с монтированием внешнего диска. но потом нашел куда примонтировать
Выручайте, на работе массово переводили hhd-ssd, на одном из маков при переносе данных из hdd в ssd не туда тыкнул...
1 отформатировал ссд
2 при восстановлении выбрал не ssd, а hdd(восстановил из ssd)...
теперь показывает что hdd свободен 100%
Спасибо
Были проблемы с командой
cp -Rv /Users/troy/* /Volumes/
написал cp -Rv /Users/* /Volumes/ и все пошло
Пишу возможно не совсем по теме, но связан с filevault. если у автора есть хоть зацепка как дальше быть - буду невероятно и бесконечно обязан..
Снес сегодня случайным образом пачку очень важных фотографий со встроенного ssd диска в макбуке (он же загрузочный). Диск зашифрован был firevault - долго объяснять почему - но черт меня дернул отключить это шифрование. В общем когда пошел процесс декриптования в фоновом режиме - я перестал и выдернул зарядку (поскольку он в фоне только при подключенном питании происходит). Вопрос мой к знатокам - если дождаться пока завершится процесс "расшифровки" - смогу ли потом вытащить удаленные файлы с харда или уже безвозвратно их система перепишет? В поддержке Apple сказали не бздеть - но я боюсь они не очень поняли суть вопроса.
Если диск был зашифрован и резервной копии не делалось боюсь что тут уже не помочь. Единственное что можно попробовать открыть Time Machine и посмотреть там, но надежда очень зыбкая