Найти тему
mdex-nn.ru

Восстанавливаем данные с диска на 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 просто вываливает на экран информацию что именно копируется в данные момент. Красиво :)

-2

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

ЕСЛИ СЧИТАЕТЕ СТАТЬЮ ПОЛЕЗНОЙ,
НЕ ЛЕНИТЕСЬ СТАВИТЬ ЛАЙКИ И ДЕЛИТЬСЯ С ДРУЗЬЯМИ.
https://mdex-nn.ru/page/vosstanovlenie-iz-single-user-mode.html