matrix 15.12.2011 17:30
Talks! — Исправление гибернации в Win7 и Debian при dual boot'е на Grub2
Здравствуйте! Давайте знакомится, это мой первый пост, так что сильно не бейте, ребята.=) Все началось с того, что я заказал в штатах себе новый ноут: Lenovo ThinkPad E420(i5 2410, 6GB RAM, HDD 500GB 7200rpm, 9-cell battery - хватает часов на 6-7), по акции вышел мне в 680$ + 100$ доставка. Причем заказ и доставка доставили тоже не мало проблем, но пост не об этом. Естественным образом большинство ноутбуков поставляется с предустановленной Windows 7, и этот ноут не исключение.Я решил ее не сносить, а попробовать плавно перейти на nix совсем(на самом деле это не первый мой опыт, с никсами я давненько знаком). Для установки выбрал Debian testing(wheezy), скачал netinstall и понеслось... В общем среду я настроил более или менее, выбрал KDE, я ее больше всего люблю за ее гибкость. Для тех, кто считает кеды тяжелые - соглашусь, на нетбуке у меня крутится Debian с Openbox'ом. Однако, все же разработчикам я не советую выбирать Debian по одной простой причине, что пакеты даже в тестинге достаточно старые, и в репозитории нет, например, svn 1.7, собирать только ручками, для чего нужно компилить некоторые зависимые пакеты и библиотеки. Странно также мне показалось то, что Netbeans 7 не захотел открывать мои старые проекты(под оффтопиком - норм, проекты создавались вообще под 6 версией).
Изначально по совету своего товарища, старого линуксоида, под своп я выделил всего 1GB, что было несомненно ошибкой. Для меня крайне удобен режим гибернации, ибо ноут используется как на рабочем месте, так и дома, и, соответственно, приходиться частенько его таскать, и хотелось бы без угрозы потерять что-либо по причине севшей батарейки. Так вот, режим гибернации естественным образом не захотел работать, ибо размер свопа должен быть не меньше занятого объема оперативки в момент ухода в гибернацию(о чем я тоже догадался далеко не сразу, копал в сторону конфигов pm-utils и ошибся).
Данную проблему пришлось решать загрузившись с флешки в PartedMagic(дистр nix заточенный для тестирования оборудования, а также для работы с диском), запустив GParted, входящий в комплект я чуточку подрезал виндовый диск и увеличил размер своп-диска до 4GB. Ура - гибернация заработала в штатном режиме. Несмотря на все положительные стороны, неудобства перевесили, и на данный момент меня можно назвать НеОсилятором, но я обещаю исправиться, в выходные попробую поставить что-нить с более свежим ядром и репозиторием. Переходим к оффтопику, да простят меня местные обитатели и духи.
Перейдя на оффтопик, я конечно же очень быстро обнаружил, что режим гибернации перестал работать и в Win7, чему был несказанно удивлен. В сети достаточно много вопросов и ответов по этой теме, но мне ничего не помогало, однако, все сходились во мнении, что дело во флаге boot для системного раздела Win, а точнее в его отсутствии, так как он само собой был перенесен при установке nix на /. В конечном итоге был откопан в пучинах паутины совет, что нужно добавить в файл /etc/grub.d/30_os-prober следующую строку: parttool hd0,msdos1 boot+. hd0,msdos1 - в данном случае имя партиции на которой лежит системный раздел оффтопика. После чего выполнить из-под рута update-grub, который перепишет файлик /boot/grub/grub.conf, но мне это не помогло, grub.conf не изменился не на толику, пришлось городить костыль и прописывать parttool (hd0,msdos1) boot+ в него напрямую, последней строкой в командах выполняющихся при выборе Win7 loader'а(!!! не последняя строка файла).
По итогам этого изменения все заработало, так что пока что я хоть и на оффтопике, но с полноценно работающим окружением. Но это, как я и обещал, только на время, скорее всего до выходных. Всем спасибо за внимание!
UPD.: Чтобы не городить костыль и не прописывать напрямую в /boot/grub/grub.conf, пришлось дописать после строки "chainloader +1" в файле /etc/grub.d/30_os-prober.
Следует учесть, что при этом данная строка добавится для каждой загрузочной записи Win. Поэтому надо быть внимательным, если у вас больше чем одна установленная Windows. После внесенных модификаций выполнить, как и было указано выше: update-grub или update-grub2 - они делают одно и тоже(выяснено опытным путем, если только у вас не установлен одновременно, и grub, и grub2).