Как стать автором
Обновить

Оптимизация OSX для работы с SSD

Время на прочтение3 мин
Количество просмотров114K
Про замену сидирума на SSD писать нет смысла, думаю все и так уже в курсе как это сделать. Слава богу, про это написано не мало статей (тыц, тыц).
image
А вот как правильно настроить систему для работы с HDD и SSD знают далеко не все.

Так как, для SSD критичны циклы перезаписи, и больше 80% емкости его лучше не заполнять, то нет смысла на него закидывать личную информацию. По этому переносим все на HDD. Мухи отдельно, котлеты отдельно ©.

Переносим папку пользователя на HDD (способ 1)


Для того, чтобы перенести папку пользователя, заходим в настройки, и меняем путь до его папки:
System Preferences > Users & Groups > (правы клик по юзеру) > Advanced Options
image
Т.к. я узнал об этом способе слишком поздно (спасибо vermilion1), вот вам сложный способ переноса домашней папки =)

Переносим /Users на HDD (способ 2)


Форматируем hdd и копируем на него все содержимое директории /Users.

Чтобы примонтировать новый раздел в /Users, необходимо сделать запись в /etc/fstab.
Для этого необходимо узнать UUID вашего винчестера. Заходим в консоль, и выполняем:
diskutil info /Volumes/HDD/ | grep UUID


Редактировать /etc/fstab в OSX можно следующим образом:
sudo vifs


В конец открывшегося файла добавляем строку с вашим UUID:
UUID=ваш_UUID /Users hfs rw 1 0
image

Теперь наша задача снести все с /Users, иначе если директория будет не пустой примонтироваться винт не сможет.
Для этого загружаемся с Recovery HD:
image

Открываем терминал, и удаляем все из папки /Users:
sudo rm -rf /Users/*

image

Теперь перегружаемся в нормальную систему, и проверяем, правильно ли все примонтировалось:
df -h

image
Если все плохо, скорее всего вы поймете это и без этой команды :)

Переносим файл гибернации на HDD


Cоздаем папку куда будем складировать фаил гибернации:
mkdir /Users/image


Отключаем гибернацию:
sudo pmset -a hibernatemode 0


Переносим файл гибернации в эту папку:
sudo pmset –a hibernatefile /Users/image/sleepimage


Включаем гибернацию:
sudo pmset -a hibernatemode 3


Проверяем появился ли в папке фаил, если да то можно удалить старый:
sudo rm –f /private/var/vm/sleepimage


Отключаем функцию фиксирования последнего доступа к файлу


Для того, чтобы отключить эту функцию, создаем файл /Library/LaunchDaemons/com.hdd.noatime.plist
И записываем в него следующее:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
	<dict>
		<key>Label</key>
		<string>com.hdd.noatime</string>
		<key>ProgramArguments</key>
		<array>
			<string>mount</string>
			<string>-vuwo</string>
			<string>noatime</string>
			<string>/</string>
		</array>
		<key>RunAtLoad</key>
		<true/>
	</dict>
</plist>


Даем права на файл:
sudo chown root:wheel /Library/LaunchDaemons/com.hdd.noatime.plist


После перезагрузки можно проверить, что все заработало:
mount | grep noatime


Включение TRIM


По умолчанию поддержка TRIM работает только для дисков, которые поставляет Apple.
Как выяснилось, TRIM подходит далеко не всем. Подробнее можно прочитать здесь. (спасибо SeiFeR)
image
Для того, чтобы включить поддержку TRIM для сторонних SSD-дисков в 10.7 нужно выполнить следующие:

Делаем резервную копию модуля ядра:
sudo cp /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage.original


Следующая команда заменяет в модуле IOAHCIFamily.kext строку APPLE SSD на нули:
sudo perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00).{9}(\x00\x51)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage


После этого нужно почистить кеш модулей:
sudo kextcache -system-prelinked-kernel
$ sudo kextcache -system-caches


Перезагружаем компьютер и радуемся :)

p.s. Буду рад любым дополнениям/исправлениям. Спасибо.
Теги:
Хабы:
Всего голосов 39: ↑31 и ↓8+23
Комментарии80

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань