Оптимизация загрузки Windows:
В моем проекте было очень много вопросов, как убыстрить загрузку Винды. Особенно, что касаемо загрузки с CF карты. «Прятать» такую информацию в ветке со своим проектом как то не очень хорошо, поэтому я решил создать данную тему. Да и тому же думаю много у кого появится желание отписать свои интересные идеи по оптимизации загрузки Windows и работы файловой системы .
Ну, а начну я наверно с оптимизации загрузки Windows'a c CF и оптимизации скорости работы CF карты работающей на IDE шине.
И так с чего начать. Первым наперво нужно обязательно приобрести переходник с поддержкой UDMA режима или если вам не посчастливилось, то переделать переходник для работы в UDMA режиме… Какие именно переходники поддерживают UDMA режим я сказать не могу. Могу сказать, что купленный мною китайский переходник поддерживает UDMA режим. На фото в моем проекте http://compcar.ru/forum/showthread.php?t=2439&p=6750 видно как он выглядит и там же можно разглядеть маркировку CF-IDE40 V.E0… по идее все переходники данной серии должны поддерживать UDMA режим.
Далее… Сама карта… По ним мне тоже сложно сказать что и как, это лучше почитать тематические разделы на сайте http://forum.ixbt.com , там очень много полезной информации можно почерпнуть для себя. Скажу, что карта опять же должна поддерживать UDMA режим и иметь на маркировке как можно больше «Иксов». И опять тут мне повезло. Купленная мною за «копейки» карта Silicon Power 200х поддерживает UDMA режим и при этом обладает не плохими скоростными хар-ками. Впринципи, при ограниченном бюджете я бы порекомендовал приобрести именно её. (8Гб версию можно попытаться купить за 1000р, а 16 гб около 2000р.) Единственный минус этой карты в 2 раза более медленная скорость записи. Но для нас это не так критично т.к. мы не каждый день переустанавливаем Windows и устанавливаем новые программы.
Но это все, тоже не совсем залог успеха. Когда я первый раз устанавливал windows, на это ушло более часа, а загрузка windowsa была раза в 3 медленнее, чем с обычного компьютера. В чем же дело? А дело в том, что в большинстве случаев флэшкарты развивают свою максимальную скорость при максимальном значении размера кластера. А windows по дефолту форматирует жесткие диски с размером кластера 4 кб. При этом скорость работы моей 200х карты получилась просто никчемная 9 Мб/с, т.е. 60х… Я бы сказал, такая скорость ни в какие ворота не лезет. А максимальная скорость в 25 мб/с(166х) моя карта показала при размере кластера в 64кб и больше.
Отформатировать Жесткий диск(CF карту с IDE переходником) можно разными программами. Самое простое команда Format с следующими параметрами: Format X: /FS:NTFS /A:64K /q , где X- форматируемый раздел… Вот теперь можно рассчитывать на максимальную скорость вашей флэш карты… Но и есть минусы такого большого размера кластера заключающиеся в потере свободного пространства на нашем носителе. А связанно это с тем, что любая информация, записанная на носитель с кластером 64К, будет занимать место кратное 64Кб. Т.е. файл размером 1 кб будет занимать на диске 64кб, файл размером 70Кб будет занимать на диске 128килобайт, и т.д. Так же при размере кластера больше 64к нельзя воспользоваться функцией сжатия информации, которая есть в файловой системе NTFS. Но с этими отрицательными моментами можно смириться в угоду бОльшей скорости. Но есть еще одна проблема на решение которой у меня ушел цельный световой день. А заключается она в том , что у меня Windows не хотел загружаться с раздела у которого кластер равен 64 кб и с 16 кб тоже не грузился… Устанавливаться устанавливается, но до первой перезагрузки… Долго я мучался и не понимал как у меня в первый раз получилось загружать Винду с разделом в 64кб. После долго анализа пришла в голову хорошая идея с 2мя разделами, один с размером кластера в 4кб другой 64кб. При этом загрузчик нужно разместить на раздел с 4кб кластером, а установку Windows производить на раздел с 64Кб. Ключем к решению проблемы было осознание того, что в первый раз я винду устанавливал на 64Кб раздел в компьютере, где уже стоял жесткий диск с установленной виндой. И тут тоже была небольшая загвоздка: «как это все реализовать?» И самый простой способ решения этой проблемы на мой взгляд такой:
Берем чистый диск без единого раздела. Загружаемся с любого диска, на котором есть загрузка старого доброго MS-DOS. Воспользовавшись программой Fdisk, создаем маленький раздел с файловой системой FAT. Я сделал на 5 мегабайт… После чего перезагружаемся и снова загружаем MS-DOS. Далее командой Format X: /s/q форматируем вновь созданный раздел c установкой на него операционной системы MS-DOS(ключ /s в команде Format). При этом желательно сделать так, чтобы другие носители информации не были подключены, дабы избежать проблем с потерей информации . После чего перегружаемся и пытаемся загрузится с нашей карты. Если мы все сделали правильно, то мы должны увидеть приветствие системы MS-DOS. Ну, а дальше нужно наш переходник с картой воткнуть в компьютер на котором установлен Windows и там средствами Windows'a создать еще один раздел и отформатировать его с размером кластера в 64К(выше я описал как это сделать). После чего сделать установку windows'а на второй раздел.
После всех вышеуказанных манипуляций загрузчик windows'a разместится на первом «4кб» разделе, а само тело windows'a будет лежать на скоростном «64К» разделе. Тем самым мы по максимуму сможем задействовать все скоростные показатели флэшки! Забегая вперед скажу, что такая система с 2мся разделами также принесет свою пользу и для простых HDD носителей, только первый раздел нужно будет создать размером чуть больше, чем размер оперативной памяти.(Самые догадливые возможно поймут для чего нужен такой «Твик»)
Остается решить проблему с ограниченным количеством циклов записи у простых CF карт. Здесь тоже пришлось много над чем поломать голову. В частности как быть с системой журналирования файловой системы windows, а так же с тем же файлом подкачки… Ну файл подкачки в условиях CarPC можно просто отключить «Пуск->Панель Управления->Система->Дополнительно->Быстродействие(параметры) ->Дополнительно->Изменить-> выбрать последовательно разделы на которых есть цифры с размером файла подкачки и чуть ниже выбираем пункт «без файла подкачки» ->Задать, на все ругательства винды не обращать внимания и гнуть свою палку до конца!
За информацию о том как отключить журналирование огромное спасибо CHIP'у который избавил меня от лишнего потери времени… Как именно это делается я здесь описывать не буду потому как в этом Посте http://compcar.ru/forum/showpost.php?p=7416&postcount=5 CHIP процитировал текст с сайта. Скажу, что помимо отключения журналирования появились многие вкусности которые присущи только Windows XP Embedded, такие как:
Enhanced Write Filter, т. е. загрузка с носителей только для чтения; зашита носителя от записи;(все манипуляции с файловой системой на диск не записываются а хранятся в памяти и при перезагрузке мы сново возвращаемся в первоначальное состояние винды. Этот режим можно в любое время как отключить так и включить).
А так же Hibernate Once Resume Many. Один раз уводим настроенную систему Windows в Hibernate. После чего создаем пустой файлики система ВСЕГДА грузится с одного и того же hiperfil.sys файла… Т.е. не нужно лишний раз уводить Windows в Hibernate режим тем самым уменьшая количество циклов записи… Кстати отключение обращений записи на диск так же может хорошо сказаться на быстродействии винды в HDD варианте…
Собственно тот минимум который необходимо знать при установке винды на CF-IDE носитель я изложил… Так что дерзайте! В последующих постах я напишу о возможных оптимизациях винды на HDD носителях, о том какие сборки Винды можно и лучше использовать, ну и о оптимизациях винды в целом…