-
FAQ: Оптимизация загрузки Windows
Оптимизация загрузки 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 носителях, о том какие сборки Винды можно и лучше использовать, ну и о оптимизациях винды в целом…
-
Re: FAQ: Оптимизация загрузки Windows
-
Re: Схема автоматического включения CarPC от ACC
А какой у тебя обьем оперативки?
Чем меньше обьем оперативки тем быстрей грузится в режиме кибернейт.
-
Re: Схема автоматического включения CarPC от ACC
у меня 1гиг. Можно конечно попробовать 512, но думаю, максимум что выиграю, это 1-2 секунды... почему-то мне кажется, что она грузит не всю память, а только ту, которая была выделена программами, по крайней мере уходит в кибернэйт она тем дольше, чем больше программ запущено...
-
Re: Схема автоматического включения CarPC от ACC
Вот тут ты не прав, посмотри размер файлика pagefile.sys
он всегда равен обьему оперативки.
-
Re: Схема автоматического включения CarPC от ACC
равен-то равен, но не факт, что туда она вся пишется, по аналогии со свопом, размер файла может быть больше, чем реально используется в нем в данный момент, просто сразу все место выделено... вобщем спорить не буду, потому как не уверен, просто есть такие ощущения :)
а вообще, как будет время, почитаю теорию на эту тему.
-
Re: Схема автоматического включения CarPC от ACC
Цитата:
Сообщение от kolychev
равен-то равен, но не факт, что туда она вся пишется, по аналогии со свопом, размер файла может быть больше, чем реально используется в нем в данный момент, просто сразу все место выделено... вобщем спорить не буду, потому как не уверен, просто есть такие ощущения :)
а вообще, как будет время, почитаю теорию на эту тему.
Ну мы же обсуждаем загрузку из кибернейта , так вот фаил зрузится полностью в оперативку. Значит и вызружает полный дамп оперативки в этот фаил.
-
Re: Схема автоматического включения CarPC от ACC
kolychev , хорошую тему подняли! КАк раз после поста об оптимизации загрузки с CF хотел перейти к некоторым методам оптимизации загрузки винды с винта... мыслей как оптимизировать загрузку простой винды особых то и нет кроме как подобрать самый удачный пак и оптимизировать подборку драйверов.... А вот с гибернейтом кучу мыслей... втом числе и с уходом в гибернейт...
Скажу, что kolychevнаверное всетаки прав на счет неполностью загрузки файла Hiperfil.sys... ПОтому как 2,5 дуйма винты имеют среднюю скорость считывания 50 мегабайт в сек. соответсвенно в его случае гибер файл грузился бы 20 сек, а у него 8-10 сек... если windows действительно при чтении считывает до определённого стоп бита означающем конец значимых данных, то думаю можно соптим изировать до 3-4х сек.... вот так...
-
Re: FAQ: Оптимизация загрузки Windows
Сомневаюсь что в винде есть приложение которое отслеживает содержимое оперативки. Потому как никто незнает сколько займет моя программа места в памяти , сам обьем программы известен но а если прога использует кучу массивов и буферов, тогда как отследить?
-
Re: Схема автоматического включения CarPC от ACC
Цитата:
Сообщение от kolychev
у меня 1гиг. Можно конечно попробовать 512, но думаю, максимум что выиграю, это 1-2 секунды...
Думаю для оптимизации каждая секунда дорога :) плюс уменьшишь потребление немножко.
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от Chip
Сомневаюсь что в винде есть приложение которое отслеживает содержимое оперативки. Потому как никто незнает сколько займет моя программа места в памяти , сам обьем программы известен но а если прога использует кучу массивов и буферов, тогда как отследить?
В Task Manager/Performance там внизу как раз и написано, сколько памяти сейчас используется под все программы и под саму винду. Винда-то уж точно знает, сколько она памяти выделила :)
-
Re: FAQ: Оптимизация загрузки Windows
да прсто напросто винда сама пишет сколько памяти всего задействовано сколько свободно и сколько используется для кэширования....
-
Re: FAQ: Оптимизация загрузки Windows
Ну тогда бы винда и писала фаил длиной равной обьему используемой памяти, но она почемуто пишет длину равной всему обьему памяти.
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от Chip
Ну тогда бы винда и писала фаил длиной равной обьему используемой памяти, но она почемуто пишет длину равной всему обьему памяти.
Вот спорщик ;)
В файл фиксированной длины всегда проще писать. Да, и быстрее - можно ж использовать прямой доступ.
-
Re: FAQ: Оптимизация загрузки Windows
я тут хотел найти как на самом деле процесс происходит, че-то так сразу не нашел :(
-
Re: FAQ: Оптимизация загрузки Windows
Файл фиксированной длины нужен еще и для того чтобы гарантированно уйти в спящий режим
-
Re: FAQ: Оптимизация загрузки Windows
А что за связь длины файла и гарантированым спящим режимом?
Вот еще мои доводы:
В оперативке стеки и массивы распологаются не последовательно друг за друго, и я думаю что проще сделать дамп всей оператики чем все это собирать в кучу.
-
Re: FAQ: Оптимизация загрузки Windows
Как какая, а если не будет достаточно места на диске под файл, то система не сможет уйти в спящий режим. куда ей сохранять данные?
А если файл создан под размер оперативки, то система сможет гарантировано сохранить все данные и заснуть.
-
Re: FAQ: Оптимизация загрузки Windows
Согласен, не последовательно, но если например за время работы винды память не подскакивала выше 300Мб, то за этими 300мб никогда ничего и не было, дырки могут быть, но выделяется память именно так, берется первый свободный кусок нужного размера. Но доводов к спору это не добавляет. Вообще, мне кажется бессмысленно спорить, надо просто найти, как это делается на самом деле :) А то получается, что никто из нас точно не уверен (по крайней мере я) и спорим :)
-
Re: FAQ: Оптимизация загрузки Windows
Курил поиск, во всем инете пишут одно и тоже, как аксиому hiberfil.sys= размеру оперативки
Цитата:
Спящий режим - все данные оперативной памяти, настройки программ, режимы работы всех устройств сохраняются на жестком диске и компьютер выключается. После включения питания система восстанавливает содержимое рабочего стола и все настройки, минуя загрузку системы. Это позволит продолжить работу с того момента, из которого компьютер был переведен в спящий режим. Кроме того, восстановление из спящего режима происходит значительно быстрее, чем обычная загрузка, что позволяет экономить заряд батарей переносных компьютеров. При разрешении использования спящего режима в корневой папке раздела, на котором установлена система, создается скрытый файл hiberfil.sys, его размер равен размеру оперативной памяти - в этот файл сохраняется память системы при переходе в спящий режим. Если вы попытаетесь удалить этот файл - система выдаст сообщение: "Не удается удалить hiberfil - файл используется другим пользователем или программой". Если вы запретите использование спящего режима, этот файл будет удален автоматически. Перевести компьютер в спящий режим вручную можно с помощью кнопки "Спящий режим" (для отображения этой кнопки нажмите shift) окна "Выключить компьютер" или используя команду из меню "Завершение работы" диспетчера задач windows.
взято тут http://www.interface.ru/home.asp?artId=5290
-
Цитата:
Сообщение от Sly76
Как какая, а если не будет достаточно места на диске под файл, то система не сможет уйти в спящий режим. куда ей сохранять данные?
А если файл создан под размер оперативки, то система сможет гарантировано сохранить все данные и заснуть.
Тоже логично :)
Цитата:
Сообщение от kolychev
Согласен, не последовательно, но если например за время работы винды память не подскакивала выше 300Мб, то за этими 300мб никогда ничего и не было, дырки могут быть, но выделяется память именно так, берется первый свободный кусок нужного размера. Но доводов к спору это не добавляет. Вообще, мне кажется бессмысленно спорить, надо просто найти, как это делается на самом деле :) А то получается, что никто из нас точно не уверен (по крайней мере я) и спорим :)
В споре рождается истина :)
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от Sly76
Курил поиск, во всем инете пишут одно и тоже, как аксиому hiberfil.sys= размеру оперативки
Аналогично...
-
Re: FAQ: Оптимизация загрузки Windows
Sly76 , не точная формулировка в приведенной цитате...
Цитата:
При разрешении использования спящего режима в корневой папке раздела, на котором установлена система, создается скрытый файл hiberfil.sys
гиперфаил создется на загрузочном диске, т.е. где находится ntloader... а систем может быть 5 штук, фаил для всех будет один и лежаться на загрузочном диске....
Основываеясь на этом у меня вертится одна из идей оптимизации скорости выхода из гибернейт на HDD носителе....
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от HiddenPilot
А так же Hibernate Once Resume Many. Один раз уводим настроенную систему Windows в Hibernate. После чего создаем пустой файлики система ВСЕГДА грузится с одного и того же hiperfil.sys файла… Т.е. не нужно лишний раз уводить Windows в Hibernate режим тем самым уменьшая количество циклов записи… Кстати отключение обращений записи на диск так же может хорошо сказаться на быстродействии винды в HDD варианте…
А можно разжевать поподробнее (как для тупого ;)) как в обычной windows xp поставить/настроить Hibernate Once Resume Many?
И можно ли будет сделать так, чтобы после выхода компа из этого многоразового спящего режима каким-то образом запускался дополнительный батник?
-
Re: FAQ: Оптимизация загрузки Windows
можна, вот тут juggler перевел все на русский.... тебе читать раздел HORM
http://compcar.ru/forum/showthread.php?t=2528
-
Re: FAQ: Оптимизация загрузки Windows
Аааа... Спасибо, не видел :(
Остались два вопроса:
1. Где взять minlogon.exe?
2. Как запустить свой батник при пробуждении системы?
-
Re: FAQ: Оптимизация загрузки Windows
там архив приложен со всеми файлами....
А батник можно запустить.... ну наверна с помощью как его.... короче пуск-программы-служебные-назначенные задания.... делаешь задание на определенную дату. и поидее виндоус должен увидеть просроченное задание и запустить его... там помоему такая галка есть.... надо экспериментировать
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от HiddenPilot
там архив приложен со всеми файлами....
minlogon.exe я в нем не нашел :(
-
Вложений: 1
Re: FAQ: Оптимизация загрузки Windows
Вот тебе winlogon
Менять только в защищеном режиме.
-
Re: FAQ: Оптимизация загрузки Windows
Кто HORM делал у себя?
Или я торможу, или одно из двух...
Проделал все операции по установке EWF. В корень загрузочного диска (С:) положил horm.dat. Смотрю что пишет:
Код:
C:\>ewfmgr
RAM (REG) Configuration
Device Name "\Device\HarddiskVolume1" [C:]
HORM Active
C:\>ewfmgr -all
Protected Volume Configuration
Type RAM (REG)
State DISABLED
Boot Command NO_CMD
Param1 0
Param2 0
Volume ID DA 9F A9 05 00 7E 00 00 00 00 00 00 00 00 00 00
Device Name "\Device\HarddiskVolume1" [C:]
Max Levels 1
Clump Size 512
Current Level N/A
Memory used for data 0 bytes
Memory used for mapping 0 bytes
Запускаю нужные проги. Нажимаю кнопку питания - комп уходит в спящий режим. При включении всё Ок - загружаемся из спящего режима.
А вот дальше полная фигня.
1. Если теперь увести комп в спящий режим, то комп опять сохраняет образ памяти на диск и по пробуждению восстанавливается уже новое состояние.
2. Если выбрать "Выключить" или "Перезагрузить", то при включении комп начинает грузится по-полной, игнорируя сохраненный образ памяти.
Что я не так сделал?
-
Re: FAQ: Оптимизация загрузки Windows
Пробовал ставить ENABLE в статусе EWF... Тогда HORM работает, но диск становится неизменяемым... А хочется диск оставить как и в обычной винде - полностью доступным для изменений, но грузить комп из "многоразового" образа HORM. Как?
-
Re: FAQ: Оптимизация загрузки Windows
как вариант сделать еще один раздел и на него натравить EWF и пусть он энаблит этот раздел, а остальные разделы будут доступны для записи...
-
Re: FAQ: Оптимизация загрузки Windows
Сделать бат фаил что бы он при запуске сохранял изменения.
В режиме read only есть огромный плюс , можно жестко рубить питание в любой момент не боясь за потерю кластеров.
-
Re: FAQ: Оптимизация загрузки Windows
не понял какой бат фаил и какие изменения нужно сохранять при запуске ?
-
Re: FAQ: Оптимизация загрузки Windows
Режим HORM включается и выключается с помощью EWFmgr.exe. Сначала надо поставить EWF, потом положить в корень диска HORM.dat, включить режим из командной строки и уйти в hibernate. Потом выключать компьютер как обычно - shut down - восстановление будет из того же файла hibernate. Режим HORM работает и после включения EWF - запись файла hibernate не кэшируется.
У кэширующего режима EWF on много достоинств - можно безопасно вырубать компьютер на ходу, система грузится и работает в несколько раз быстрее. Недостаток один - нельзя просто так сохранить настройки - нужно делать Commit & Reboot.
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от juggler
Недостаток один - нельзя просто так сохранить настройки - нужно делать Commit & Reboot.
Недостатков как минимум два - еще пожирается значительная часть памяти :(
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от HiddenPilot
не понял какой бат фаил и какие изменения нужно сохранять при запуске ?
Зачем при запуске, если тебе нужно сохранить изменения
Тоесть если чтото настраивал или правил.
Цитата:
Нужно делать Commit & Reboot
Цитата:
Сообщение от ashu
Недостатков как минимум два - еще пожирается значительная часть памяти :(
Памяти нужно как минимум 2 гб
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от HiddenPilot
как вариант сделать еще один раздел и на него натравить EWF и пусть он энаблит этот раздел, а остальные разделы будут доступны для записи...
Ну, да, я тож к такому выводу пришёл... Подумаю что там можно намудрить...
Перелопатил mp3car.com, но не нашел ответа (возможно, плохо искал) на вопрос - как можно ограничить размер памяти, выделяемый для нужд EWF?
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от Chip
Вот тебе winlogon
Менять только в защищеном режиме.
Chip, спасибо.
Хорошо, что я его сначала попробовал на тестовом домашнем ноуте - существенного ускорения загрузки не заметил, зато нах полетели настройки в большинстве установленных прог :(
Не, на carpc такое ставить не буду пока - лень все настройки перелопачивать ;)
P.S. Ты очепятался - не "защищенный", а "безопасный" :)
-
Re: FAQ: Оптимизация загрузки Windows
Цитата:
Сообщение от Chip
Зачем при запуске, если тебе нужно сохранить изменения
Тоесть если чтото настраивал или правил.
Ты всё в кучу свалил.
Если надо много чего править в системе, то запускаешь "ewfmgr c: -commitanddisable -live", после этого вносишь свои изменения, запускаешь "ewfmgr c: -enable" и перегружаешься.
А если надо сохранить то, что в процессе работы было понаписано, то нужно для разового сохранения давать "ewfmgr c: -commit".
... Как-то так...