По мотивам данного поста с небольшими дополнениями. Не смог оставить комментарий к вышесказанному посту, поэтому пишу новую статью.
Решил модернизировать смой Mac mini (late 2012), оснастив его SSD Intel X25-M 160GB. Операционка – Yosemite 10.10.1. Воткнул SSD по статье с iFixit – ничего сложного нет, шлейф для SSD заказывал у наших друзей из «поднебесной». Решил сделать таким образом – операционка и программы на SSD, пользовательские данные на HDD.
Так как я предпочитаю unix way, то решил примонтировать HDD в /Users
Для начала скопировал с помощью Carbon Copy Cloner загрузочный диск кроме пользовательских данных (/Users) на SSD. Далее перенёс папку /Users/username/ в корень HDD и перегрузился с раздела Recovery. Для этого зажимаем alt при загрузке и выбираем Recovery (в принципе, можно загрузиться с любой загрузочной флешки с OS X на борту).
Удалил с HDD все разделы и файлы кроме /username, очистил папку /Users на SSD, чтобы диск смонтировался.
Процес монтирования описан в вышесказанном посте в разделе «способ 2», поэтому я не буду снова это повторять, хотя есть единственное дополнение. Когда определяете UUID диска командой:
На выводе получите два кода UUID — логического тома и партиции. Нужно брать первый в списке.
В принципе, можно в опциях монтирования указать не UUID, а просто название диска в /dev/. Например, /dev/disk1s2 – я так обычно делаю на linux.
Название нужного диска можно определить командой:
Касательно опции монтирование SSD – noatime. Ничего сам не мудрил – у меня операционка по дефолту смонтировала SSD с данной опцией. Возможно, это фича Yosemite.
TRIM активировал с помощью Chameleon SSD Optimizer.
Файл гибернации перенес сюда — /Users/.vm
Процедура описана нормально в упомянутом посте.
Проверить работает ли hibernate и его режим.
Что не указано
Необходимо также перенести swap на HDD. Подробно процедура описана тут.
Вкратце изложу процедуру:
Для начала определяем в какой папке будет лежать своп. Я решил в той же где и файл гибернации — /Users/.vm
Естествено у меня операционка уже загружена с SSD и HDD подмонтирован в /Users.
Открываем терминал и делаем бэкап файла настроек swap.
Конвертируем бинарный файл настроек в XML.
Открываем файл настроек любым редактором, я использовал vim.
Меняем аналогичные строки на нижеуказанные.
Для тех кто не умеет пользоваться vim — для редактирование нажимаем «i», в конце редактирования нажимаем «Esc» и для того, чтобы записать файл
":wq".
Конвертируем обратно в бинарник:
ВАЖНЫЙ МОМЕНТ — в вышеуказанном листинге com.apple.dynamic_pager.plist в кодах &amр; буква p это русская эр!
По этому лучше не копировать, а перепечатать. Иначе сделать не мог — скрипты форума преобразовывают &amр; в &.
Перезагружаемся. Если что то пошло не так — грузимся в verbose mode (Command-v при загрузке) или single mode (Command-s при загрузке) и восстанавливаем файл настроек из бэкапа.
Автор, так же объясняет для чего необходимо использовать консольную утилиту waith4path — процесс dynamic_page (управление свопом)
запускается на очень ранней стадии старта операционки и другие диски кроме корня могут не успеть смонтировать на данной стадии, что приведет к проблемам.
Смотрим создался ли своп по новому пути.
У меня оперативки много, по этому пришлось запустить кучу программ для того, чтобы ядро начало писать в своп.
Если все ОК, удаляем старый своп.
Проверка включен ли своп.
Еще один важный момент — исключаем папку с файлом гибернации и свопа из TimeMachine.
Для того, чтобы не создавался бэкап свопа и файла гибернации. У меня это одна и та же папка, по этому:
Проверяем:
И еще рекомендуют исключить своп из индексов, но нижеуказанная команда сработает, только если у вас своп и файл гибернации на отдельном логическом томе.
Эдакий linux way.
Проверить индексацию можнор так.
Успехов!
Решил модернизировать смой Mac mini (late 2012), оснастив его SSD Intel X25-M 160GB. Операционка – Yosemite 10.10.1. Воткнул SSD по статье с iFixit – ничего сложного нет, шлейф для SSD заказывал у наших друзей из «поднебесной». Решил сделать таким образом – операционка и программы на SSD, пользовательские данные на HDD.
Так как я предпочитаю unix way, то решил примонтировать HDD в /Users
Для начала скопировал с помощью Carbon Copy Cloner загрузочный диск кроме пользовательских данных (/Users) на SSD. Далее перенёс папку /Users/username/ в корень HDD и перегрузился с раздела Recovery. Для этого зажимаем alt при загрузке и выбираем Recovery (в принципе, можно загрузиться с любой загрузочной флешки с OS X на борту).
Удалил с HDD все разделы и файлы кроме /username, очистил папку /Users на SSD, чтобы диск смонтировался.
Процес монтирования описан в вышесказанном посте в разделе «способ 2», поэтому я не буду снова это повторять, хотя есть единственное дополнение. Когда определяете UUID диска командой:
diskutil info /Volumes/HDD/ | grep UUID
На выводе получите два кода UUID — логического тома и партиции. Нужно брать первый в списке.
Volume UUID: 409AF953-4812-38DA-A0D9-4B0C5C49BC8E
Disk / Partition UUID: 00000DAE-5F23-0000-586C-0000281D0000
В принципе, можно в опциях монтирования указать не UUID, а просто название диска в /dev/. Например, /dev/disk1s2 – я так обычно делаю на linux.
Название нужного диска можно определить командой:
diskutil list
Касательно опции монтирование SSD – noatime. Ничего сам не мудрил – у меня операционка по дефолту смонтировала SSD с данной опцией. Возможно, это фича Yosemite.
macmini:~ home$ mount
/dev/disk0s2 on / (hfs, local, journaled, noatime)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s2 on /Users (hfs, local, journaled)
map -hosts on /net (autofs, nosuid, automounted, nobrowse)
map auto_home on /home (autofs, automounted, nobrowse)
TRIM активировал с помощью Chameleon SSD Optimizer.
Файл гибернации перенес сюда — /Users/.vm
Процедура описана нормально в упомянутом посте.
Проверить работает ли hibernate и его режим.
sudo pmset -g
Что не указано
Необходимо также перенести swap на HDD. Подробно процедура описана тут.
Вкратце изложу процедуру:
Для начала определяем в какой папке будет лежать своп. Я решил в той же где и файл гибернации — /Users/.vm
sudo mkdir /Users/.vm
Естествено у меня операционка уже загружена с SSD и HDD подмонтирован в /Users.
Открываем терминал и делаем бэкап файла настроек swap.
$ cd /System/Library/LaunchDaemons
$ sudo cp com.apple.dynamic_pager.plist{,_bak}
Конвертируем бинарный файл настроек в XML.
sudo plutil -convert xml1 com.apple.dynamic_pager.plist
Открываем файл настроек любым редактором, я использовал vim.
sudo vim com.apple.dynamic_pager.plist
Меняем аналогичные строки на нижеуказанные.
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>/bin/wait4path /Users/.vm &amр;&amр;
/sbin/dynamic_pager -F /Users/.vm/swapfile</string>
</array>
Для тех кто не умеет пользоваться vim — для редактирование нажимаем «i», в конце редактирования нажимаем «Esc» и для того, чтобы записать файл
":wq".
Конвертируем обратно в бинарник:
sudo plutil -convert binary1 com.apple.dynamic_pager.plist
ВАЖНЫЙ МОМЕНТ — в вышеуказанном листинге com.apple.dynamic_pager.plist в кодах &amр; буква p это русская эр!
По этому лучше не копировать, а перепечатать. Иначе сделать не мог — скрипты форума преобразовывают &amр; в &.
Перезагружаемся. Если что то пошло не так — грузимся в verbose mode (Command-v при загрузке) или single mode (Command-s при загрузке) и восстанавливаем файл настроек из бэкапа.
Автор, так же объясняет для чего необходимо использовать консольную утилиту waith4path — процесс dynamic_page (управление свопом)
запускается на очень ранней стадии старта операционки и другие диски кроме корня могут не успеть смонтировать на данной стадии, что приведет к проблемам.
Смотрим создался ли своп по новому пути.
cd /Users/.vm
$ ls -la
У меня оперативки много, по этому пришлось запустить кучу программ для того, чтобы ядро начало писать в своп.
Если все ОК, удаляем старый своп.
$ cd /private/var/vm
$ sudo rm swapfile*
Проверка включен ли своп.
sysctl vm.swapusage
Еще один важный момент — исключаем папку с файлом гибернации и свопа из TimeMachine.
Для того, чтобы не создавался бэкап свопа и файла гибернации. У меня это одна и та же папка, по этому:
sudo tmutil addexclusion -p /Users/.vm
Проверяем:
tmutil isexcluded /Users/.vm
И еще рекомендуют исключить своп из индексов, но нижеуказанная команда сработает, только если у вас своп и файл гибернации на отдельном логическом томе.
Эдакий linux way.
sudo mdutil -i off /pathtoswap && sudo mdutil -E /pathtoswap
Проверить индексацию можнор так.
sudo mdutil -s /pathtoswap
Успехов!