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

    Про замену сидирума на 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. Буду рад любым дополнениям/исправлениям. Спасибо.
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 80

      +2
      Как вовремя, однако — как раз сегодня на амазоне продаётся самсунговский ssd на 256 гб за 175 е.
      Спасибо!
        +1
        А ссылкой не поделитесь?
          +1
          Чего ж не поделиться-то: www.google.com/search?q=amazon+samsung+ssd+175

          Но по 175 уже разобрали, можно сделать предзаказ на следующую партию по 179,9 с доставкой 30 мая.
        +4
        Что такое «сидирум»?
          +2
          CD-ROM, дисковод :)
            –6
            Спасибо К.О., я ждал, что ответит автор.
              +29
              CD-ROM, дисковод.
                –1
                Офигеть. Давайте еще видЯхи — видЮхами называть.
                Сидирум — это просто какая-то комната, блин. CD ROOM.
                  +1
                  ВидЯхи? Что это?
          +4
          При большом количестве памяти hibernatemode 3 имхо не имеет смысла. Система быстрее загрузится с ssd чем восстановит память с медленного hdd.
          Использую hibernatemode 0.
            +3
            Ну и ~/Library я бы оставил на SSD и еще папку iTunes (не музыкальные файлы, а именно базу) — в сумме много места они на займут, а «ускорение» обеспечат. А объемные папки симлинками закинуть в ~/.
              +1
              hibernatemode 3 это гибридный режим(RAM+HDD или RAM+SSD).
              Сохранение текущей сессии на HDD дает возможность восстановить работу после отключения питания.
              Основная сессия остается в памяти и восстановление из спячки происходит мгновенно(если сбоев не было, с винта сессия не восстанавливается).
                +1
                Я в курсе :) Но смысла все-равно мало. По сути невыход из спячки может случиться только из-за разрядки батареи в ноль, но не сохраняться в этом случае глупо.
                А минусы при гибридном подходе все-равно чувствуем постоянно — долгий уход в сон, долгое по сравнению с обычной загрузкой восстановление памяти из гибернации.
                К примеру восстановление 16 гиг будет занимать как минимум 2 минуты, а загрузка системы с SSD секунд 5-10.
                  0
                  SmartSleep вам в помощь – в гибернейт будет уходить только при заряде батареии меньше 20% (порог настраивается) в остальное время только RAM.
                    0
                    Мой выбор сделан, только слип без гибернейта, по вышеописанным причинам, при низком заряде документы и я вручную сохранить могу.
                    Ну и у утилиты сомнительные отзывы.
                      +1
                      Пользуюсь ей не первый год – только положительные отзывы. Для меня SmartSleep это быстрый сон/просыпание при повседневной работе и страховка на случай когда рядом нет розетки.
                      П.С. Аккумулятор садится не только когда вы работаете за ноутом. Были случаи, когда заряд был небольшой, но еще вполне приличный, ноут отправлялся в сон, а следущий раз включался (безуспешно) через несколько дней (в поездках такое бывает).
                        0
                        А бывает ещё и такое, что ноут при закрытии не засыпает. Работает, пока не сядет в ноль. Пару раз попадался так на 10.7.
                          0
                          Кстати, такое бывает, когда вы включаете Internet Sharing. Начиная с какой-то версии, Mac OS не разрешает себе засыпать, пока она расшаривает интернет.
                    0
                    Эмм… Восстановление в гибридном режиме мгновенное(тупит только уход в спячку).
                    Вы безусловно правы, если вообще в ноуте есть винты, то есть смысл спячку сделать обычной — только в памяти. Если в ноуте SSD везде, то время на дамп совершенно пофиг. Закрываем крышку, сразу кидаем ноут в сумку и поехали — оно само допишет сессию на SSD и окончательно уйдет в спячку, SSD тряски не боится, в отличии от HDD, при которых лучше дождаться полной спячки, и только потом двигать ноут.
                      0
                      Мгновенное если хватило заряда на подпитывание памяти. Если не хватило, то после включение и обычной инициализации пойдет не загрузка системы, а восстановление из sleepimage, длиною в размер оперативки.
                        0
                        Зато сессия восстановится. Со всеми данными, окнами и т.п.
                        Тут кто как работает. Кому легко — просто запустить те же программы, а кому надо уже посложнее действия делать. Запускать все что было и как было будет дольше загрузки системы и даже дольше, чем восстановление сессии с винта )
                        Та же винда(и любая другая ось) под параллелсами с кучей рабочих программ тоже ведь навернется? Не все программы в маке, а под виндой тем более, способны восстановить свое состояние при сбросе слип-сессии.
                        +1
                        А оно вам надо – писать 4-8-16 гигов на SSD каждый раз, когда вы закрываете крышку? При конечном количестве записей на него.
                          0
                          Конечное количество перезаписей меня как-то не очень волнует. Intel SSD плюс TimeMachine бекапы не дадут потерять данные даже в случае маловероятного выхода SSD из строя. А комфорт и надежность сохранения работы важнее.

                          Но для ноута и hibernatemode 0(обычный «спящий режим» без гибернации) в большинстве случаев подойдет, тут вы правы. Тем более для макбука, в котором батарея внутренняя и случайно выщелкнуться и выпасть из своей ниши не может. У меня в стареньком Toshiba Portege M400, например, защелка батареи была ненадежной — там лучше гибернация.

                          Однако хорошо бы, если бы был вариант, как у Intel® Rapid Start Technology™ в новых ультрабуках — чтобы ноут сам мог при долгом нахождении в спячке по таймауту перейти в гибернацию на SSD. В таком случае при недолгих спящих режимах, типа поездок с ноутом на работу и обратно, гибернации и лишних перезаписей на SSD не будет, а при долгих спячках будет экономиться батарея за счет полного отключения компа в режиме гибернации.

                          Вышепредложенная SmartSleep этого не умеет, что в общем-то логично: она устанавливает нужный режим на основе текущего заряда батареи до закрытия крышки, далее же, в самой спячке, она уже не властна над компом.
                  +1
                  Уважаемый автор, предлагая людям активацию TRIM не забывайте делать сноску на то, что TRIM подходит далеко не всем. Подробнее об этом я писал тут.
                    +1
                    На SF TRIM жизненно необходим — сборщик мусора там работает из рук вон плохо. Хотя на SF и TRIM не восстанавливает производительность до уровня «свежего» диска
                    www.fcenter.ru/img/article/hdd/Corsair_Crucial_Plextor/184666.png — смотрите графики для Intel, обоих Corsair-ов и OCZ.
                      +1
                      У пользователей возникали ступоры системы. Безусловно TRIM ускоряет работу записи, и судя по вашему графику тоже, но конфликтует с контроллером.
                        0
                        Много жалоб и с отключенным тримом — некотором помогал сброс NVRAM и PRAM.
                        Я склонен думать что не в TRIM'е дело. Кроме того попробовать ничто не мешает, в любом случае можно безболезненно откатиться :)
                      +1
                      Спасибо, добавил в статью.
                      +4
                      Можно узнать, зачем замазываются серийные номера жесткого диска? Боитесь что на него позвонят?
                        –1
                        Just in case.
                        +5
                        Разве так не проще будет?
                        System Preferences > Users & Groups > (правы клик по юзеру) > Advanced Options…

                          +1
                          Невероятно! У меня более unix way:)
                          Кстати, не могу сделать правый клик на трэкпаде.
                            0
                            Кликайте как обычно, но положите на трекпад второй палец. Ну или сразу двумя кликайте :)
                              0
                              Или control + клик
                                +1
                                Надо было замочек разблокировать :)
                                Спасибо, не знал. Это серьезно все облегчает!
                                  +1
                                  Пожалуйста. На счет клика немного ступил, не обращайте внимания.
                          • UFO just landed and posted this here
                              0
                              Так утилита делает то же самое.
                                –1
                                вместо обычного патча она заменяет важнейший системный файл на уровне ядра системы. Это значит, что если вы использовали TRIM Enabler, то он заменил файл с массой тянущихся из него ниточек по всей MacOS (особенно актуально для тех кто переехал на Льва из MacOS Snow Leopard 10.6.8). А это плохо. Очень плохо. На ряду с тем, что TRIM действительно включается, появляется реальная опасность столкнуться с вагоном проблем, начиная от kernel panic и заканчивая проблемами ввода/вывода (I/O), и вот тогда-то вас точно настигнет вращающийся и пугающий пляжный мяч.

                                habrahabr.ru/post/143659/
                                  +3
                                  Lion 10.7.4.
                                  MD5 оригинального: 48e392b3ca7267e1fd3dd50a20396937
                                  MD5 патченого вручную: a2f64369e775c76be4ec03ce5172a294
                                  MD5 патченого TRIM Enabler'ом: a2f64369e775c76be4ec03ce5172a294
                              +1
                              Не смущает эта строка из man-а?
                              hibernatefile — change hibernation image file location. Image may only be located on the root volume. Please use caution.
                                0
                                Смущает :)
                                Как только замечу проблемы — перемещу обратно. Либо совсем отключу.
                                  0
                                  У меня просто и SSD и HDD под Filevault2 – я не совсем точно знаю в какой момент загрузки системы монтируется второй (не системный) диск и как отреагирует система на недоступность диска на котором должен быть sleepimage. Эксперименты не проводил но мне кажется, проснуться из такого файла система не сможет совсем.
                                0
                                А тормозов не появится от переноса ~/Library на HDD?
                                  0
                                  Появятся, конечно. Вообще, купить SSD и продолжать держать личные файлы на HDD — это шиза какая-то. Из разряда заворачивания пультиков от ТВ в полиэтиленовые пакеты.
                                    0
                                    Как ни странно, пульты дома я тоже в пакетики заворачиваю :)
                                    Как только SSD будет по объему и цене хотя бы близок к HDD — перестану «заворачивать его в пакетик».
                                      0
                                      Если хочется максимизировать отношение производительности к цене, то эксперименты с маленькими/медленными SSD и выносом домашки на HDD просто не окупаются, IMHO. Проще тогда уж вложиться в быстрый HDD и добавить памяти.
                                        0
                                        На сколько я понимаю, использование более быстрого HDD не менее рискованное дело. Малейшая тряска может убить его.
                                          0
                                          У меня в ноуте был сигейт на 7200 довольно долго. Умер только тогда, когда я его достал из ноута и случайно смахнул со стола на пол.
                                    0
                                    Всё же гибридные пока предпочтительней винчестеры (IMHO).
                                    SSD сыроваты для повседневного хардкор-использования.
                                    0
                                    После выхода 10.8 планирую купить SSD, установить его вместо DVD-Rom а HDD использовать только для больших файлов (архив фотографий, музыка, видео и т.п.).
                                    Можно ли примотировать HDD как /Users/<user>/Media/ с помощью /etc/fstab или все же лучше использовать его через /Volume/Media/?
                                      0
                                      А какие плюшки вы планируете получить при его монтировании в пользовательскую папку?
                                        0
                                        Например, автоматический бекап с помощью Time Machine (/Volumes/* не попадают в бекап).
                                          +2
                                          Можно указать Time Machine конкретный раздел, который тоже нужно резервировать.
                                            0
                                            Ну тогда особого смысла монтировать HDD как ~/Media/ я не вижу. Спасибо за информацию!
                                            Осталось дождаться релиза, выбрать объем (128Гб vs 256Гб) и производителя.
                                            0
                                            М-м-м, вроде как все нормально у меня бэкапится в Time Machine — и SSD, и HDD. Или я чего-то не знаю, что знате Вы? :)
                                              0
                                              Наверное вы правы, я имел дело только с внешними HDD и они автоматически не попадают в бекап.
                                              Скорее всего с внутренними HDD все по другому, поэтому я и спрашивал, имеет ли смысл монтировать HDD как ~/Media/.
                                                0
                                                Если зайти в одну из TimeMachine'ных директорий (например, Latest), то можно увидеть, что она «раздвояется» на SSD и HDD. Во всяком случае у меня именно так.
                                          +1
                                          Используйте vifs для редактирования /etc/fstab. Добавьте туда примерно такую строку:
                                          UUID=00000000-0000-0000-0000-000000000000 /Users/yourname/Media hfs rw
                                          

                                          UUID замените на UUID вашего раздела. Узнать его можно разными способами, например так (допускаем, что метка раздела Media):
                                          diskutil list | grep Media
                                          

                                          Находим устройство, соответствующее вашему разделу, допустим это disk2s2. Узнаем его UUID:
                                          diskutil info /dev/disk2s2 | grep UUID
                                          

                                          Перед перезагрузкой создайте папку Media и поправьте ей права:
                                          cd ~
                                          mkdir -p ./Media
                                          chmod 755 ./Media
                                          

                                          Как-то так.
                                            0
                                            Спасибо, буду экспериментировать.
                                          +1
                                          Признаться, прочитав заголовок ожидал увидеть оптимизацию системы c ssd only. Минимизацию кол-ва записи на диск, например созданием раздела /var/log и /tmp в памяти.
                                            0
                                            А еще можно логи в реальном времени на принтер отправлять и не хранить в системе.
                                            +1
                                            Крайне полезный пост. В закладки.
                                              0
                                              Оптимизация немыслима без тестов (:
                                                0
                                                Я вот не понимаю зачем покупать ссд, чтобы все переносить на хдд? Реально фетиш какой-то. Скорость же будет ужасна, где профит то?
                                                  0
                                                  Полностью согласен, все переносить не имеет смысла (особенно ~/Library/).
                                                  Лучше купить как минимум 128 Гб SSD под систему и небольшие файлы а все тяжелое (и редко используемое) хранить на HDD (внешнем или внутреннем).
                                                  0
                                                  Хм… А в самой лучшей и юзерфрендли операционной системе мира всё так сложно?
                                                  Нет ли какой нибудь красивой програмули, простите приложения, для упрощения этого процесса?
                                                    0
                                                    Прошу прощения, дело в том, что я бывший линуксойд, по этому привык решать свои проблемы примерно так. Возможно есть какие то приложения для этого, как узнаю — с радостью добавлю в пост.

                                                    На самом деле, обычно люди не парятся по этому поводу:)
                                                      0
                                                      Хотя да, линуксойды не бывают бывшими :)
                                                      0
                                                      А откуда эта программуля может узнать именно ваши потребности?
                                                      например перенес весь свой ~, я перенес музыку-фото-видео, кто-то и вовсе не «заморачивался» а просто вручную складирует на hdd.

                                                      Кстати, интересно, как сделано на изначально гибридных маках, например на iMac, в который можно купить с hdd+ssd…
                                                      0
                                                      Не вижу смысла переносить всю домашнюю папку. При переходе с HDD на SSD перенёс почти всю домашнюю папку, оставив на HDD разную медию, типа папки загрузок, видео, библиотеку iPhoto и медиатеку iTunes (достаточно их запустить с зажатым Option, тогда они спросят какую библиотеку открывать). Игры тоже оставил на HDD, папку стима туда же слинковал. SDD брал с запасом (128гб достаточно для полной системы и данных без медии), а всё большое — на винте. Туда же резервируется весь SSD через TimeMachine, что происходит достаточно быстро и резерв всегда с собой, выручало не раз.

                                                      Кстати, автору ещё предлагаю добавить в примечания напоминание о том, что TRIM надо включать повторно после каждого обновления системы, потому что этот файл успешно каждый раз перезаписывается (не понимаю, с какой целью – ведь это лишние потенциальные претензии типа «SSD в маках не работает долго, не покупайте маки»).
                                                        0
                                                        Насчет частично переносимой /Home согласен полностью. А по поводу резервного копирования предложил бы использовать старый винт (тот который заменили на SSD) и Carbon Copy Cloner. С периодическим инкрементальным бекапом.

                                                        В случае чего на место возвращается HDD с актуальной системой и файлами — никаких образов, восстановлений и тд.
                                                          0
                                                          Резервное копирование туда и делается, но встроенными средствами (TimeMachine).
                                                        0
                                                        Очень своевременная статья! Как раз переехал на M4 (Crucial).
                                                        В качестве небольшого (но полезного) дополнения могу порекомендовать отключить Spotlight:

                                                        sudo mdutil -a -i off
                                                        

                                                        Это тоже увеличит жизнь вашего SSD.
                                                          0
                                                          я понимаю перенос больших объемов на HDD, уж очень дорогие еще гигабайты на SSD.
                                                          Но все остальное, зачем? Смысл тогда вообще в SSD если все файлы к которым нужен быстрый доступ на HDD?
                                                          Только для быстрого старта систем и программ?
                                                          PS
                                                          Странно… Может я конечно чего не понял…
                                                            0
                                                            А есть реальные цифры насколько увеличивается жизнь от отключения (или переноса) hibernatefile?
                                                              0
                                                              Подскажите пожалуйста.
                                                              Поставили 1gb hdd вместо dvd.
                                                              Дело в том, что он (HDD) шумит, так как постоянно крутится.
                                                              Хочется его включать только когда нужен доступ к медиа файлам (видео, фото и прочее)

                                                              Как можно командой быстро монтировать диск hdd (чтобы не лезть в Disk Utilits)?
                                                                0
                                                                Не подскажу конкретно по вашему вопросу, но у меня в mac mini ssd+hdd и hdd диск просто засыпает если к нему не обращаться. Соответственно, начинает шуршать только когда лезешь туда.
                                                                Может вам настроить засыпание?
                                                                У меня так работалает само по себе. Но, судя по всему, это должно настраиваться через pmset (сходу нашёл habrahabr.ru/sandbox/68452/)
                                                                  0
                                                                  Я тоже предполагал такое поведение — засыпание при неиспользовании.
                                                                  По ссылке автор настраивается себе отключение по горячим клавишам (вместо ручного отключение через диск утилиту)
                                                                  Попробую это — это уже лучше чем скрипт запускать
                                                                  Спасибо
                                                                    0
                                                                    Хотя вы правы — засыпание стало срабатывать по настройке pmset на минуту.
                                                                    Спасибо огромное!

                                                                Only users with full accounts can post comments. Log in, please.