OS X Lion disaster recovery

Опублікував Сергій Макаренко 13-05-2012 об 17:27

Вчора прийшовши додому як завжди сів за свій Mac Pro перевірити пошту, почитати твітери, Вконтактик тощо. Неприємною несподіванкою стало те, що я не зміг ввести пароль для того, щоб зняти блокування ком'ютера. Спочатку я подумав, що проблема пов'язана з клавіатурою бо Magic Mouse працювала, і я міг за допомогою неї перезавантажити клмп'ютер або приспати його. А от символи ввести в поле паролю не зміг. Тоді я спробував підключитись за допомогою MacBook Air і через Apple Remote Desktop спробувати розблокувати свій Mac Pro. Таке іноді спрацьовувало. Ця спроба теж не дала результату. Тоді я вирішив просто перезавантажити свій Mac і подивитись, що буде. Зазвичай це вирішує 90% подібних проблем.

Після перезавантаження мене чекали великі неприємності. По-перше, в смугу меню не підвантажилось жодного системного додатку: годинник, дата, стан Wi-Fi, Bluetooth, звук, iMessage, статус Time Machine, нічого не було. По-друге iTunes мені сказав, що не може відобразити на моєму Mac Pro обкладинки альбомів. Тобто відвалився Quartz Extrime і я залишився без апаратного прискорення графіки. Інтерфейс гальмував так, як я ніколи не бачив на своєму восьмиядерному Mac Pro. Жодна програма не запускалась. Вірніше запускалась, але окрім значка в Dock я нічього побачити не міг. Причому, якщо я пробував за допомогою правої кнопки миші або лівого кліка з зажатою клавішею Command закрити її через контекстне меню система намертво зависала. «Консоль» не відкривалась взагалі, тому логи я швидко подивитись не міг. Також так само себе поводила «Дискова утіліта» і я навіть перевірити права доступу і полікувати диск не міг. Коротше кажучи жопа. Дякувати мені любимому, що я не панікував бо бекап лежав на Time Capsule і я міг його розгорнути у будь-який зручний для мене час. Але ж мені цього так не хотілось. Хотілось, щоб все полагодилось і працювало знову.

Тому я вирішив спочатку спробувати перевірити і виправити привілеї доступу, якщо це необхідно і перевірити диск. Однією з гіпотез було припущення, що моєму програмному RAID0 прийшов кінець. Ну все ж може бути. Тому я спочатку завантажився по NetBoot (дякувати знову таки мені, що запиляв таку службу на Mac mini Server, що працює у локальній мережі) в OS X Lion 10.7 і подивися, що ж в мене з жорстким диском. Дискова утіліта сказала, що з моїм RAID все круто, він онлай і працює так, як треба. Перевірка цілісності диска і перевірка привілеїв доступу на диску не запускалась. Тицяєш на кнопку «Перевірити привілеї диску» чи «Перевірити диск» і результату ніякого. Після цього я спробував перезавантажитись в безпечному режимі. Я логічно припустив, що якщо проблема викликана програмним збоєм, то вона наслідки буде усунено, тому що під час завантаження в безпечному режимі видаляється кеш динамічного завантажувача (/var/db/dyld/), відключається Quartz Extrime, завантажуються тільки необхідні розширення ядра, відключаються всі шрифти окрім системних, відключаються всі об'єкти, що повинні завантажуватись при статрті системи. Коротше кажучи це все значно спростить діагностику і пошук причини збою. Але все не так сталося як гадалося.

В безпечному режимі Mac Pro не хотів завантажуватись. Він довго вантажився і після того як полоса прогресу під колесом добігаля кінця він перезавантажувався сам. І так декілька разів. Тоді я завантажився в однокористувацькому режимі (Command+S) і спробував перевірити диск за допомогою команди fsck з ключами -f та -y. Утіліта показала, що файлова система була пошкоджена і вона виправила знайдені помилки. Далі я спробував перевірити диск за допомогою diskutil але побачив повідомлення про те, що в однокористувацькому режимі фреймворк дискової утіліти не підвантажується. Коротше кажучи я перезавантажився в звичайному режимі і системі трохи полегшало але не відпустило. Прості програми, як, наприклад, Twitter for Mac або Mail, почали нормально працювати але «Дискова утіліта» та «Консоль» все ще не хотіли вантажитись і нормально працювати. Але запрацював «Термінал». І цього було достатньо. В ньому я запустив перевірку диску за допомогою «Дискової утіліти» за допомогою команди diskutil. Перевірив сам том OS X Lion і проблем не знайшов. З привілеями виявилось все трохи гірше але їх також полагодив. І після цього всього перезавантажився. І знову все те саме. Після цього я вирішив не тягнути кота за хвіст а спробувати полагодити все зламане накатуванням OS X Lion Update 10.7.4 (Client Combo), бо в деяки випадках могло допомогти. І швиденько його викачав. Але і тут мене очікував сюрприз. Як не важко здогадатись Installer теж не працював з GUI. Але і тут на допомогу прийшла консоль. Оновлення було встановлено за допомогою команди:

installer -pkg %file_path%/MacOSXUpdCombo10.7.4.pkg -target /

І після перезавантаження все чудово запрацювало.

Після всих цих жахів я подивився логи і побачив crash report. Тазік приліг відпочити в суботу, 12 травня о 17:39 через те, що впав процес coreservicesd. Чього — не зрозуміло. Якщо хтось з вас побачить причину в цьому звіті буду радий за підказку в коментарях.

Зараз все ок, система працює як і раніше. В мене є припущення, що так доходить один з жорстких дисків, що працює в RAID0. Єдине що бентежить, так те, що Дискова утіліта» як і раніше не хоче проводити перевірку цілісності диска і перевірку привілеїв доступу на диску в GUI. Через «Термінал» все чудово працює і перевіряється. Буду спотерігати.

P.S. Маленький офтопік. Якщо моя гіпотиза з помираючим жорстким диском підтвердиться то це не змінить мої думки, що OS X Lion за глючністю переплюнула Mac OS X Leopard. Сподіваюсь, що OS X Moutain Lion буде таким же вилизаним і стабільним як свого часу Mac OS X Snow Leopard, який можна було вважати технічним оновленням для Mac OS X Leopard. Тоді я гнів зміню на милість і буду знову вважати Apple компанією, яка випускає класний і стабільни софт.