По мотивам данного поста с небольшими дополнениями. Не смог оставить комментарий к вышесказанному посту, поэтому пишу новую статью.
Решил модернизировать смой 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
Процедура описана нормально в упомянутом мною посте.
Что не указано
Необходимо также перенести 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 &&
/sbin/dynamic_pager -F /Users/.vm/swapfile</string>
</array>
Для тех, кто не умеет пользоваться vim – для редактирование нажимаем «i», в конце редактирования нажимаем Esc и для того, чтобы записать файл ":wq".
Конвертируем обратно в бинарник:
sudo plutil -convert binary1 com.apple.dynamic_pager.plist
Перезагружается. Если что-то пошло не так – грузимся в verbose (Command-v) или single mode (Command-s) при загрузке и восстанавливаем файл настроек из бэкапа.
Автор также объясняет, для чего необходимо использовать консольную утилиту waith4path – процесс dynamic_page (управление свопом) запускается на очень ранней стадии старта операционки и другие диски кроме корня могут не успеть смонтировать на данной стадии, что приведет к проблемам.
Смотрим, создался ли своп по новому пути:
cd /Users/.vm
$ ls -la
У меня оперативки много, поэтому пришлось запустить кучу программ для того, чтобы ядро начало писать в своп. Если всё ОК, удаляем старый своп:
$ cd /private/var/vm
$ sudo rm swapfile*
Ещё один важный момент – исключаем папку с файлом гибернации и свопа из TimeMachine. Для того, чтобы эта штука не бэкапилась. У меня это одна папка, поэтому:
sudo tmutil addexclusion -p /Users/.vm
Проверяем:
tmutil isexcluded /Users/.vm
И ещё рекомендуют данную папку из индексов, но у меня пока не взлетело:
sudo mdutil -i off /pathtoswap && sudo mdutil -E /pathtoswap
Успехов!
Автор: Bearpuh