Ubuntu 8.04 был выпущен в апреле 2008. Большая часть функционала на eeePC доступна «из коробки».
Если вы нуждаетесь в инструкции по установке Ubuntu, посмотрите в отдельный раздел: Установка Ubuntu 8.04
Проблема: сетевой адаптер отключился. Я установил закрытый драйвер, но это не помогло: светодиод линка на роутере не загорается при включении eeePC.
Очень похоже, что проблема в состоянии электропитания адаптера, в который тот переводится при завершении работы в оригинальном дистрибутиве Xandros: замечено, что такая проблема (с пропаданием линка) наблюдается при «двойной» загрузке: всякий раз после завершения работы Xandros и загрузке в Ubuntu сетевой адаптер не функционирует.
Решение: Отсоедините eeePC и выньте из него батарею, а затем подключите её снова. Каким-то образом это «сбрасывает» что-то внутри eeePC, и это всегда восстанавливает работоспособность проводного сетевого адаптера всегда восстанавливается.
Ещё вариант: если вы хотите удалить Xandros и полностью перейти на Ubuntu - вы можете завершить последний сеанс работы в нём через «жёсткое» отключение: нажмите и удерживайте нажатой кнопку отключения питания в течение примерно 5 секунд.
Адам (также участник сообщества eeeusers.com) создал специальное ядро. В нём решены проблемы с Wifi, микрофоном, а также реализованы некоторые другие возможности. Установка ядра состоит из двух основных шагов:
Многие пользователи протестировали это ядро и остались довольны.
Вот вкратце список включенных особенностей оптимизированного ядра:
Ядро linux-image-2.6.24-20-eeepc:
Пакет linux-ubuntu-modules-2.6.24-20-eeepc:
Если вы решили поставить это ядро - смотрите внимательно следующие разделы, поскольку многие из них вам не потребуются.
Встроенный беспроводной адаптер Eee не работает «из коробки». Для устранения этой проблемы необходимо обновить драйвер. Откройте окно консоли (Приложения>Стандартные>Терминал) и введите следующие команды:
sudo apt-get update sudo apt-get install build-essential wget 'http://snapshots.madwifi.org/special/madwifi-ng-r3366+ar5007.tar.gz' tar zxvf madwifi-ng-r3366+ar5007.tar.gz cd madwifi-ng-r3366+ar5007 make clean make sudo make install sudo reboot
Обновления системы (в особенности новые ядра) приведут к тому, что обновлённый таким образом драйвер снова «сломается»; в этом случае просто повторите вышеуказанные действия, чтобы вновь восстановить работу wifi.
Вы поступить, как предлагается, либо ознакомиться со следующим разделом.
Ubuntu «из коробки» не умеет корректно выключать Eee. Завершение работы приводит к тому, что экран гаснет, однако питание не отключается, и для полного выключения вам нужно вынуть батарею.
Для полного корректного отключения Eee добавьте следующую строку:
rmmod snd-hda-intel
в конец скрипта /etc/default/halt .
Возможно, вы столкнётесь с тем, что Firefox регулярно «вылетает» или «зависает». Чтобы исправить это, в настоящий момент можно попробовать сделать следующее:
Зайдите в Правка>Настройки>Защита и *отключите* предупреждения о сайтах, подозреваемых в атаке или имитации других сайтов. Это полностью устранит проблему с зависанием.
Скрипт, находящийся здесь прекрасно работает и позволяет выполнить большинство задач, перечисленных в дальнейших разделах. Вы также легко можете отредактировать этот скрипт чтобы предотвратить изменения, которые вы не хотите вносить. Данный скрипт выполнит следующие настройки:
(Спасибо http://www.x2on.de!!!!)
Другой скрипт: http://eee.ricey.co.uk/files/eee/RiceeeyTweak.sh, включает вышеупомянутый, а также добавляет следующие возможности:
Я не тестировал этот скрипт и ничего не могу сказать о его эффективности и работоспособности
(Спасибо http://eee.ricey.co.uk!!!)
Примечание: на основании реальных изменений энергопотребления никаких особых преимуществ во включении управления частотой процессора не отмечено. Прочтите Power consumption of the Eee PC. Если это вас не убедило, двигаемся дальше.
После установки Ubuntu не может управлять частотой процессора (впрочем, как и Xandros). Если вы держите компьютер включенным в розетку весь день, то никаких проблем с этим не; однако если вы работаете от батареи, вы можете заметить, что её хватает не на столь длительный срок, как хотелось бы. К тому же при этом она нагревается.
К счастью, это можно исправить: можно уменьшить частоту процессора, если вы, например, просто печатаете (и тем самым увеличить время работы от батареи); данная настройка также увеличивает частоту процессора, если вы запускаете какую-нибудь ресурсоёмкую задачу.
В первую очередь кликните правой кнопкой на дальшем левом углу панели вверху экрана, и запустите команду «добавить на панель». Наберите в поиске «монитор», и добавьте «Монитор изменения частоты процессора». Вы увидите сообщение об ошибке, что изменение частоты процессора не поддерживается на вашей машине (нажмите Ок), и этот апплет покажет, что ваш процессор работает на частоте 630MHz.
Запустите терминал и выполните следующее:
sudo apt-get remove powernowd sudo apt-get install cpufrequtils sysfsutils sudo modprobe p4_clockmod
В этот момент вы можете заметить, что ваш процессор стал работать медленнее. Поздравляем! Вы только что включили управление частотой процессора! Теперь нужно написать несколько скриптов, чтобы всё это происходило автоматически:
sudo nano /etc/sysfs.conf
…добавьте следующую строку:
devices/system/cpu/cpu0/cpufreq/scaling_governor = ondemand
…затем откройте другой файл конфигурации:
sudo nano /etc/modules
…и добавьте две строки:
p4_clockmod cpufreq_ondemand
…создайте два файла для ACPI, чтобы автоматически переключаться в режим полной частоты, когда вы подключаете адаптер переменного тока:
sudo echo > /etc/acpi/ac.d/90-cpufreq.sh '#!/bin/sh' sudo echo >> /etc/acpi/ac.d/90-cpufreq.sh '/usr/bin/cpufreq-selector -g performance' sudo echo > /etc/acpi/battery.d/90-cpufreq.sh '#!/bin/sh' sudo echo >> /etc/acpi/battery.d/90-cpufreq.sh '/usr/bin/cpufreq-selector -g ondemand' sudo chmod +x /etc/acpi/ac.d/90-cpufreq.sh sudo chmod +x /etc/acpi/battery.d/90-cpufreq.sh
…наконец, перезагрузите машину - просто, чтобы убедиться, что всё работает, набрав в консоли
sudo reboot
Апплет частоты процессора должен теперь сказать, что последний работает очень медленно (125MHz на моей машине), однако запуск любых интенсивных вычислительных задач вновь поднимет частоту и переключит процессор на полную скорость. Вы можете отметить, что компьютер стал менее «отзывчивым» - ему может потребоваться несколько секунд на то, чтобы решить увеличить частоту.
Вы можете задать минимальную частоту для модуля governor с помощью следующей строки в /etc/sysfs.conf:
devices/system/cpu/cpu0/cpufreq/scaling_min_freq = 337000
Это немного ухудшит параметры модуля за счёт более высокой начальной частоты.
Примечание: с загруженным модулем p4_clockmod EEEPC скажет, что он работает на частоте 900MHz - в целом это на 33% быстрее, чем на самом деле. К несчастью, это не так. Бенчмарки покажут ту же производительность, которая была без модуля, т.е. как на частоте 630 Mhz. Более детальное объяснение этому можно найти в других статьях wiki (например, Overclocking the Front Side Bus (FSB) to 100 MHz with a Linux kernel module - упомянутый выше скрипт RiceeeyTweak как раз использует этот модуль) - включая специальные модули ядра для EEE, которые помогут вам включить полноценные 900Mhz.
[TODO: добавить ссылок]
*Я заметил, что включение управления частотой процессора в действительности существенно замедлил работу моего Eee (4GB Surf 701 w/2GB ram) - главное меню стало вызываться намного медленнее, а также появились артефакты в отображении графики при отрисовке значков в главном меню. Если вы хотите «разогнать» процессор, я бы порекомендовал поискать на форумах информацию о том, как это сделать через прошивку специальной версии BIOS, котороая позволит вам включить режим оптимизации по производительности (900Mhz). Если я верно понял, после включения режима 900Mhz вы можете затем прошить любую другую, новую или более стабильную версию BIOS, а изменения частоты процессора останутся даже после установки нового BIOS.
Пользователи с обычными правами не могут изменять частоту процессора с помощью апплета изменения скорости. Если хотите рискнуть, вы можете дать им возможность это делать, выполнив команду
sudo chmod +s /usr/bin/cpufreq-selector
… и с этого момента вы можете просто кликать мышью по апплету скорости и изменять частоту на своё усмотрение.
Для включения горячих клавиш wifi добавьте
pciehp pciehp_debug=1 pciehp_force=1
в файл /etc/modules
Создайте скрипт /etc/acpi/actions/wireless-toggle.sh со следующим содержимым
#!/bin/sh wlan_control=/proc/acpi/asus/wlan WLANSTATE=$(cat $wlan_control) case $WLANSTATE in 1) ifconfig ath0 down modprobe -r ath_pci echo 0 > $wlan_control modprobe -r pciehp ;; 0) modprobe pciehp pciehp_force=1 pciehp_debug=1 echo 1 > $wlan_control modprobe ath_pci echo 0 > $wlan_control echo 1 > $wlan_control ;; esac
и сделайте его исполняемым, выполнив команду chmod a+x /etc/acpi/actions/wireless-toggle.sh
Для полной поддержки горячих клавиш, включения/выключения камеры и т.д. вам нужно установить модуль eeepc-acpi.
Установите его командами:
sudo apt-get install module-assistant eeepc-acpi-source sudo m-a a-i eeepc-acpi sudo sh -c 'echo eeepc-acpi >> /etc/modules'
Эти команды скачают исходник модуля и соберут его для вашего текущего ядра. Всякий раз после обновления ядра вам нужно выполнить m-a a-i eeepc-acpi (независимо от способа обновления ядра - либо с помощью apt-get, либо с помощью dist-upgrade)
Примечание: На моём eeepc 900, это не исправило ситуацию с камерой…
Примечание: Этот модуль уже включен в специальное ядро ARRAY.ORG, упомянутое в начале данного руководства.
Примечание: Перед всякой вознёй с камерой на eeepc 900, зайдите в Bios и включите камеру там.
Многие жалуются на слишком медленную загрузку системы, которая, похоже, сводится к проблеме в определении источника времени (таймера). Чтобы проверить это, прервите grub при загрузке (во время обратного отсчёта), нажав esc. Затем нажмите 'e' на пункте загрузки по умолчанию, чтобы отредактировать параметры загрузки. Переместите стрелками курсор на строку с ядром и снова нажмите 'e'. В конце строки (после параметров «quiet» и «splash»), добавьте:
clocksource=hpet
Нажмите Enter, затем нажмите 'b' для продолжения загрузки. Это может ускорить загрузку примерно на 40 секунд (при установке системы на SSD).
Чтобы сделать эти изменения постоянными, после загрузки системы отредактируйте файл /boot/grub/menu.lst (потребуются права рута, либо sudo). Найдите строку:
# defoptions=quiet splash
и исправьте её, чтобы получилось вот так:
# defoptions=quiet splash clocksource=hpet
(Примечание: defoptions изменяет лишь параметры ядра для загрузки по умолчанию, оставляя всё остальное без изменений. Если вы хотите внести эти изменения для всех остальных пунктов загрузки, включая режим восстановления, используйте вместо этого параметр kopt, который находится несколькими разделами выше defoptions.)
Сохраните menu.lst и выйдите из редактора, затем из консоли выполните
sudo update-grub
Чтобы ваши новые настройки вступили в силу, перезагрузитесь.
Добавьте:
options snd-hda-intel model=3stack-dig
в файл /etc/modprobe.d/snd-hda-intel (если такого файла нет, создайте его)
Добавьте:
options snd-hda-intel model=auto
в файл /etc/modprobe.d/snd-hda-intel (если такого файла нет, создайте его)
Примечание: если вы воспользовались ранее скриптом настройки «всё-в-одном» - очень вероятно, что вам нужно вручную проверить эту настройку, потому что скрипт ещё «не знает» о существовании EeePc 900 и скорее всего добавит здесь строчку такую же, как для EeePc 4G, что приведёт к «поломке» звука.
По некоторым причинам после пробуждения из ждущего режима звук на платформе EeePc 90x не всегда восстанавливается. Поэтому необходимо настроить звуковую систему Alsa, чтобы она особым образом приостанавливала и пробуждала свои собственные модули до того, как это сделает ОС.
(Примечание: похоже, что на EeePc 70x нет такой проблемы, также нет и на Gutsy, однако я не могу это подтвердить :)
Внимание: После применения описанного хака после пробуждения системы вы увидите предупреждение о том, что gnome-mixer неожиданно завершился. Вам нужно всякий раз нажимать кнопку «перезагрузить», или нажать однажды cancel чтобы вообще убрать этот апплет. В настоящий момент нет способов устранить эту проблему.
Примечание: Возможно, это не 100% решение. После пробуждения тесты звуковой системы работают (Система –> Параметры –> Звук), также работает звук в приложениях типа Skype, однако «системные звуки» Gnome не работают после пробуждения даже после перезагрузки микшера (т.е. нет звука при выходе из системы). Если вы завершите сеанс и снова зайдёте (перезагрузка не требуется), «системные звуки» вернутся, поэтому, возможно, для полного решения необходима перезагрузка ещё каких-то модулей Ghome.
Шаг 1: Откройте /etc/default/alsa и измените «force_unload_modules_before_suspend» на:
force_unload_modules_before_suspend="snd_hda_intel"
Шаг 2: Создайте скрипт /usr/lib/pm-utils/sleep.d/45sound
#!/bin/bash
if [ ! -x /sbin/alsa ]; then
exit 0;
fi
case "$1" in
hibernate|suspend)
/sbin/alsa suspend
;;
thaw|resume)
/sbin/alsa resume
;;
*)
;;
esac
exit $?
Шаг 3: Сделайте скрипт /usr/lib/pm-utils/sleep.d/45sound исполняемым:
$ sudo chmod +x /usr/lib/pm-utils/sleep.d/45sound
Чтобы задействовать клавиши управления звуком и wifi создайте новый файл /etc/acpi/eeepc-hotkeys.sh и вставьте в него следующий текст:
#!/bin/sh code=$3 case $code in # Fn+F2 -- enable/disable wifi 0000001[01]) /etc/acpi/actions/wireless-toggle.sh ;; # Fn+F7 -- mute/unmute speakers 00000013) acpi_fakekey 113 ;; # Fn+F8 -- decrease volume 00000014) acpi_fakekey 114 ;; # Fn+F9 -- increase volume 00000015) acpi_fakekey 115 ;; esac
Сделайте этот скрипт исполняемым с помощью chmod a+x /etc/acpi/eeepc-hotkeys.sh
Измените /etc/acpi/events/hotkey на
event=hotkey ATKD action=/etc/acpi/eeepc-hotkeys.sh %e
В дистрибутиве Ubuntu 8.04 Final нет файла горячих клавиш! Создайте его.
Перезагрузитесь - и клавиши управления громкостью должны заработать (однако, для этого нужна ещё поддержка ACPI).
Эта настройка у меня так и не сработала (впрочем, не в этом дело). Эта настройка не включит никаких «экранных надписей». Но если вы просто установите паке eee-osd-package, всё сразу заработает. Все регуляторы и специальные клавиши (кроме LED/LCD: fn+f5) будут работать. И кроме прочего вы получите замечательные экранные значки. Этот пакет разработан на основе оригинальных настроек Xandros, как они это сделали в своём коде. В этом пакете я нашёл одну небольшую ошибку: не нажимайте на кнопки слишком быстро.
Тем не менее, Adam работает над таким же пакетом. Вы можете скачать его здесь, но помните, что это всего лишь тестовая версия.
Проблема в дистрибутиве Hardy заключается в том, что единственный доступный режим разрешения экрана это 640×480. Запуск команды
sudo apt-get install 915resolution
исправит эту проблему и позволит выбрать разрешение 800×480.
Другой вариант решения: убедитесь, что у вас установлен и задействован новый драйвер настройки режима разрешения, который называется «intel». Имя пакета, который содержит этот драйвер, начинается с «xserver-xorg-video-».
Объяснение: старый драйвер «i810» берёт установки разрешения из BIOS. Поэтому для его корректной работы нужно пропатчить образ BIOS в памяти, добавив в него недостающие режими.
Примечание: При установке на EeePC 900, в безопасном режиме драйвер X11 по умолчанию задан как Vesa, и обеспечивает только разрешения 640×480 и 800×600. Исправьте «vesa» на «intel» в файле /etc/X11/xorg.conf. Это решит проблему:
Section "Device"
Identifier "Configured Video Device"
Driver "intel"
EndSection
Для ясности: 915resolution не нужен, если вы можете успешно переключиться с драйвера «i810» на «intel».
Этот хак поможет установить любое из поддерживаемых значений яркости. По умолчанию максимальная яркость составляет около 50% от документированной яркости для дисплея eee. (Текст скопирован из http://www.ubuntu-eee.com/index.php5?title=How_to:_Ultra_Bright_LCD)
sudo setpci -s 00:02.1 f4.b=ff
О том, насколько такой «светлячок» безопасен, ничего не известно…
Двойное нажатие fn f5 выключает внутренний LCD на время загрузки. По завершении загрузки экран снова включается - уже на окне приветствия.
/usr/bin/xrandr --output LVDS --off
Теперь в работе останется только внешний дисплей. Надеемся, что это позволит увеличить время работы от батареи. Вы можете внести это в скрипт bash, а умные люди могут использовать это для отключения экрана по нажатию fn f5.
Возможность перемещать окна по маленькому экрану Eee, чтобы видеть разные области окна, является важной функцией. Это делается нажатием кнопки <Alt> с последующим перетаскиванием окна по рабочему столу.
Однако при установке Hardy «из коробки», Compiz, который по умолчанию включен, не позволит перемещать окна вверх за пределы рабочего стола (экрана). Устранить проблему можно двумя путями: отключить Compiz, или исправить Compiz.
Для исправления поведения Compiz откройте консоль и выполните следующую команду:
gconftool-2 --set /apps/compiz/plugins/move/allscreens/options/constrain_y --type bool 0
Примечание: Это индивидуальная настройка для текущего пользователя. Поэтому она не сработает, если вы выполните указанную команду от имени рута, дописав sudo перед началом команды (точнее, сработает, но конкретно для пользователя root).
На kubuntu нет gconftool (поскольку она основана на другой библиотеке). Если вы установили Compiz на Kubuntu, зайдите в настройки плагинов и в самом нижнем разделе списка найдите плагин Move. Снимите в настройках плагина галочку constrain_y и сохраните настройки. TODO: (наверное это можно сделать с помощью скрипта из консоли. Тот, кто может - поправьте, пожалуйста)
Удалите файл /etc/acpi/events/asus-mail и перезапустите демон acpid командой sudo /etc/init.d/acpid restart Модуль asus-acpi посылает событие о нажатой клавише при подключении внешнего питания.
For some reason this seems to be more difficult to do than it should be, probably since it requires both devices to be configured correctly.
you need to build the rndis driver from svn
svn co https://synce.svn.sourceforge.net/svnroot/synce/trunk/usb-rndis-lite cd usb-rndis-lite/ make sudo ./clean.sh sudo make install
edit
sudo nano /etc/networking/interfaces
# USB xda-universal tethering auto rndis0 iface rndis0 inet dhcp
I used an xda universal and configured an internet connection on the phone (details from your provider. I started internet connection sharing on the phone which didn't seem to be connecting so i started internet explorer and made sure the connection was active.
in a terminal i typed
sudo dhclient rndis0
which got me an ip address of 169.254.2.2 the phone took 169.254.2.1 I gave the IP of the phone as an additional dns server in networking. maybe this isn't necessary.
hmm this is strange i added a network monitor to the top bar for rndis0 it says my ip is 192.168.0.102 and broadcast ip 192.168.0.255 and its ethernet.
and then connected with firefox there was a little messing connecting and disconnecting the usb cable but it now works, the connection here is quite slow however its a g signal (3 bars) not 3g so i guess equivalent to dial up. T-mobile do data for £1 a day or £7.50 a month. cheaper than an internet cafe. hope this helps a little
incidentally virtualbox manages to use the connection too.
(решение предложено knox)
Тикет #218434 касается только тех систем, где корневая файловая система находится на внешнем устройстве - как например, кардридер SD-карт в eeePC. Потому я адаптировал один из предложенных обходных путей с использованием механизма политик hal:
$ sudo mousepad /etc/hal/fdi/policy/removable_root_fix.fdi
<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
<deviceinfo version="0.2">
<device>
<match key="volume.mount_point" string="/">
<merge key="@block.storage_device:storage.removable" type="bool">false</merge>
</match>
</device>
</deviceinfo>
$ sudo invoke-rc.d hal restart
В моём случае это полностью решило проблему.
Обновление: поскольку пакет gnome-keyring был обновлён, данный хак больше не нужен.
Иногда при попытке автомонтирования карт MMC/SD возникает ошибка. (Например, это случилось у меня с моей картой на 16GB)
Чтобы исправить это поведение,
Выполните следующую команду:
sudo mkdir /media/MMCSD
Откройте файл '/etc/fstab' в текстовом редакторе.
Исправьте строку, в которой находится текст '/dev/sdb1', чтобы получилось вот так:
/dev/sdb1 /media/MMCSD auto user,auto,exec,rw 0 0
На Asus Eeepc 900 (где два встроенных диска SSD) вместо 'sdb1' нужно писать 'sdc1':
/dev/sdc1 /media/MMCSD auto user,auto,exec,rw 0 0
Если вы работаете с Kubuntu, во избежание проблем с доступом к диску после перезагрузки рекомендуется добавить к опциям монтирования umask=000:
/dev/sdc1 /media/MMCSD auto user,auto,exec,rw,umask=000 0 0
Выньте и снова вставьте карту, и автомонтирование снова заработает.
Настройка автомонтирования подсказана William Ruckman (http://ruckman.net)
На Ubuntu (а также Debian и Fedora Core) замечено, что при завершении работы/перезагрузке с подмонтированной картой MMC/SD происходит повреждение файловой системы (как при извлечении без отмонтирования). В результате этого при последующей загрузке карта не монтируется, и для дальнейшей работы требуется запуск fsck. Кроме того, возможно повреждение данных. Простейший способ исправить ситуацию - извлечь карту перед завершением работы.
Можно извлечь диск по имени устройства. Например, /dev/sdc (на EeePC 900). Однако это имя не всегда такое. Например, если вы загрузите систему со вставленной флэшкой, скорее всего /dev/sdc будет вашей флэшкой, а не картой SDHC. Поэтому лучше всего найти имя устройства в одной из папок /dev/disk. Например, если вы создали файловую систему на SD-карте с меткой, (например, вот так: mkfs.ext3 -L SDHC /dev/sdc1), то вы можете обращаться к этому устройству по метке: как /dev/disk/by-label/SDHC. Это имя уже не меняется в зависимости от вставленных/извлечённых других накопителей usb. Ещё более изощрённый (и в то же время надёжный) вариант - /dev/disk/by-uuid/. Зайдите в эту папку и найдите ссылку uuid, которая ссылается на подмонтированный раздел SDHC. Наконец, ещё вариант - можно сделать аппаратную привязку по /dev/disk/by-id (серийный номер диска) или по /dev/disk/by-path (устройство на шине).
Отредактируйте файл /etc/init.d/umountfs:
Найдите следующую часть файла:
# Unmount local filesystems
#
[ -z "$REG_MTPTS" ] && return
...
fi
done
[ "$VERBOSE" = no ] && log_action_end_msg $ES2
и допишите сразу после этого следующие строки
[ "$VERBOSE" = no ] && log_action_begin_msg "Ejecting SDHC drive"
sync
# далее можете по вкусу выбрать одну из строчек
# eject /dev/sdc # <- имя устройства, где монтируется SD/MMC (может меняться, см. выше)
# eject /dev/disk/by-label/SDHC # <- то же самое по метке раздела
# eject /dev/disk/by-uuid/c0e409aa-af91-42da-94f0-c2ca2f03739b # <- то же самое по uuid раздела
# eject /dev/disk/by-id/usb-USB2.0_CardReader_SD0_146030377350-0:0 # <- то же самое по серийному номеру диска
eject /dev/disk/by-path/pci-0000:00:1d.7-usb-0:5:1.0-scsi-0:0:0:0 # <- по пути к диску на шине
sleep 2
[ "$VERBOSE" = no ] && log_action_end_msg $ES2
Теперь при завершении работы / перезагрузке проблема с повреждением ФС должна исчезнуть.
(Примечание: Документация основана на http://news.softpedia.com/news/Encrypted-Ubuntu-7-04-61312.shtml с помощью http://de.gentoo-wiki.com/Root-Partition_mit_dm-crypt_&_cryptsetup_verschl%C3%BCsseln_-_Die_schnelle_Version . Код поправлен для работы с 8.04 (Hardy Heron) на ядре 2.6.24-19-generic)
Положим, у вас имеется следующая конфигурация:
/dev/sda1: основной корневой раздел
/dev/sda2: загрузочный раздел (boot) (40 MB)
(У меня на машине нет раздела подкачки, поскольку, во-первых, имею 2Гб оперативной памяти, а во-вторых, раздел подкачки на 4Gb SSD (EeePc 701) - это не очень хорошая идея)
Скорее всего вы устанавливали Ubuntu с помощью загрузочного флэш-диска USB (или CD-ROM, если у вас есть). Загрузитесь снова с этого носителя. Когда загрузка закончится, откройте терминал (Приложения → Стандартные → Терминал) и получите права суперпользователя (root), выполнив команду:
sudo su
или
sudo -i
С этого момента и до конца сеанса работы вы станете суперпользователем, и вам не придётся каждый раз набирать sudo перед каждой командой.
Подготовим систему к шифрованию. Для этого нужно загрузить некоторые модули ядра. Наберите или скопируйте-вставьте в терминал следующие команды:
modprobe aes_i586 modprobe dm-crypt modprobe dm-mod modprobe sha256_generic
Установите пакет cryptsetup:
apt-get install cryptsetup
Создайте точки монтирования для текущих файловых систем и смонтируйте их:
cd /mnt mkdir boot root mount /dev/sda1 root mount /dev/sda2 boot
Теперь сделайте резервную копию данных (на отдельной флэшке, либо (на 900-й модели) на втором диске SSD, либо на карте SDHC). Ниже приведет вариант для флэшки - он же для карты.
cd /mnt/root tar сjvf /media/disk/root.tar.bz2 . cd ..
Последняя команда выведет очень много текста (все файлы, которые копируются). Подождите, пока вывод не завершится. Это может занять около 20 минут (зависит от количества файлов). Если вы создаёте архив на разделе FAT имейте в виду, что размер файла на этой ФС не может превышать 2Гб. Если вы используете сжатие (параметр j) и свежеустановленную Ubuntu, это должно сработать.
Когда резервное копирование завершится, отмонтируйте диск командой:
umount root
и зашифруйте файловую систему следующей командой:
cryptsetup -c aes-xts-plain -y -s 320 luksFormat /dev/sda1
ВНИМАНИЕ: Все данные будут безвозвратно затёрты!
Ответьте YES на запрос утилиты и дважды введите стойкий пароль. Примечание: YES нужно набирать заглавными буквами (Выделено жирным, потому что я сам несколько часов не мог этого понять. В противном случае вы получите сообщение «Command failed.») Затем наберите:
cryptsetup luksOpen /dev/sda1 root mkfs.ext2 /dev/mapper/root mount /dev/mapper/root root
Теперь копируем данные из временной папки назад, в только что созданный корневой раздел:
cd root tar xjvf /media/disk/root.tar.bz2
Так же, как в прошлый раз, эта команда выведет много текста, так что просто подождите, пока она закончит, а затем удалите временную папку:
rm /media/disk/root.tar.bz2 cd ..
Теперь файловая система зашифрована. Однако до тех пор, пока вы не выполните последние настройки, она не будет работать. Наберите или скопируйте/вставьте в терминал следующие строки:
mkdir root/boot mount /dev/sda2 root/boot mount -o bind /dev root/dev mount -o bind /proc root/proc chroot root
В этот момент вы «виртуально» окажетесь в новом корневом разделе, и сможете внести в него нужные изменения. Начните с установки пакета шифрования cryptsetup:
apt-get update apt-get install cryptsetup
Затем нужно добавить необходимые модули ядра в файл /etc/initramfs-tools/modules file, так чтобы они могли быть загружены во время загрузки системы (о тонкой настройке initrams можно прочитать на странице http://blog.rootserverexperiment.de/2008/04/29/eeepc-ubuntu-804-initramfs-tuning/):
nano etc/initramfs-tools/modules
Добавьте в конец файла следующие строки:
aes_i586 dm-crypt dm-mod sha256_generic
Чтобы сохранить файл, нажмите CTRL+O, а затем ENTER. Чтобы закрыть nano, нажмите CTRL+X.
Теперь вам нужно поправить файл /etc/fstab, чтобы монтировался верный корневой раздел:
nano etc/fstab
Измените строку, похожую на нижеприведённую (UUID здесь лишь для примера… ваш будет другим):
# /dev/sda3 UUID=4565t675-6c67-56hg-hg7j-67g5jk00b562 / ext3 defaults,errors=remount-ro 0 1
Чтобы получилось:
/dev/mapper/root / ext2 noatime,errors=remount-ro 0 1
В общем, просто замените (UUID=4565t675-6c67-56hg-hg7j-67g5jk00b562) на (/dev/mapper/root). Или (другой вариант): определите UUID нового шифрованного раздела:
vol_id /dev/mapper/root
и замените старый uuid на новый.
Нажмите CTRL+O и ENTER чтобы сохранить файл. Нажмите CTRL+X чтобы закрыть nano.
Теперь настало время отредактировать файл /etc/crypttab:
nano etc/crypttab
Добавьте в конец файла следующую строку:
root /dev/sda1 none luks,retry=1,cipher=aes-cbc-essiv:sha256
Нажмите CTRL+O и ENTER чтобы сохранить файл. Нажмите CTRL+X чтобы закрыть nano.
Наконец, отредактируйте файл /boot/grub/menu.lst:
nano boot/grub/menu.lst
Найдите строку, похожую на нижеприведённую (UUID здесь лишь для примера… ваш будет другим):
# kopt=root=UUID=4565t675-6c67-56hg-hg7j-67g5jk00b562 ro
И измените её, чтобы получилось:
# kopt=root=/dev/mapper/root ro
ПРИМЕЧАНИЕ: здесь также можно указать устройство через UUID вместо абсолютного пути (см. выше комментарий по правке fstab)
Нажмите CTRL+O и ENTER чтобы сохранить файл. Нажмите CTRL+X чтобы закрыть nano.
Исправьте некоторые ошибки:
cp /usr/share/initramfs-tools/hooks/cryptroot /etc/initramfs-tools/hooks/cryptroot cp /usr/share/initramfs-tools/scripts/local-top/cryptroot /etc/initramfs-tools/scripts/local-top/cryptroot
Обновите загрузчик GRUB следующей командой:
grub-install --recheck hd0,1 update-grub grub-install hd0
И проверьте файл /boot/grub/menu.lst, чтобы в нём было место, похожее на это:
title Ubuntu 8.04, kernel 2.6.24-19-generic root (hd0,1) kernel /vmlinuz-2.6.24-19-generic root=/dev/mapper/root ro quiet splash clocksource=hpet initrd /initrd.img-2.6.24-19-generic quiet savedefault
Убедитесь, что там есть параметр root=/dev/mapper/root. Если это так, вы можете обновить initramfs следующей командой:
update-initramfs -u All
Выйдите из «виртуального» окружения и перезагрузите систему командами:
exit reboot
При запуске системы вы увидите заставку Ubuntu, которая исчезнет через несколько секунд, и вы увидите лишь мигающий курсор в левом верхнем углу экрана. Теперь вам нужно ввести пароль, который вы указали при шифровании файловой системы, и нажать ENTER. Если вы ввели пароль правильно, система продолжит загрузку. Теперь вся ваша система Ubuntu полностью зашифрована!
Сжав папку /usr вы можете освободить около 1Гб места на диске. Основная идея состоит в том, чтобы сжать содержимое папки с помощью squashfs. Однако система на squashfs работает в режиме только-чтение. Поэтому поверх неё необходимо разместить другую файловую систему, например, unionfs или aufs - чтобы иметь возможность сохранять изменения.
1. Устанавливаем пару пакетов:
sudo apt-get install squashfs-tools aufs-tools
2. Создаём папку, где будет лежать сжатый образ файловой системы и оверлей:
sudo mkdir -p /usrsquash/overlay
3. Сжимаем файловую систему:
sudo mksquashfs /usr /usrsquash/usr.sqfs
4. Добавляем эти строки в файл /etc/modules:
aufs squashfs loop
5. Добавляем эти строки в файл /etc/fstab:
/usrsquash/usr.sqfs /usr squashfs ro,loop,nodev 0 0 aufs /usr aufs nodev,noatime,dirs=/usrsquash/overlay=rw:/usr=ro 0 0
6. Переключаемся на runlevel 1:
sudo init 1
(Ubuntu спросит вас, что делать - выберите запуск root-шелла)
7. Переименовываем старую папку /usr и создаём новую пустую папку для точки монтирования:
mv /usr /usr.old mkdir /usr
8. Проверяем, работает ли новая (сжатая) конфигурация. Наберите:
mount -a
Если в результате этого вы увидите сообщения об ошибках, а папка /usr окажется пустой, то вам нужно исправить fstab, либо отменить все внесённые изменения ДО перезагрузки.
9. Переключаемся снова в многопользовательский режим:
init 3
… или просто перезагрузите компьютер:
reboot
Всё в порядке? В таком случае вы можете удалить папку /usr.old чтобы освободить занятое ею место.
Когда в процессе установки приложений / обновлений папка /usrsquash/overlay станет занимать достаточно много (на ваш взгляд) места вы можете обновить сжатый образ.
Для этого создайте «свежий» образ командой
sudo mksquashfs /usr /usrsquash/usr1.sqfs
Затем перейдите в runlevel 1:
sudo init 1
Там замените старый образ новым, а затем очистите папку /usrsquash/overlay
cd /usrsquash mv usr1.sqfs usr.sqfs rm -R overlay/*
и переключаемся снова в пользовательский режим (init 3)
Примечание: последовательность команд обновления можно оформить в виде скрипта и запускать его в runlevel 1.
Источник: http://po-ru.com/diary/linux-liposuction-or-xubuntu-in-under-a-gig-on-the-eee-pc/
Вопрос: Как можно пересжать? Не лучше ли, и в чём, если сжать всю файловую систему целиком? Не лучше ли воспользоваться cloop + aufs (и если лучше, то в чём именно)?
Примечание: Сжатый раздел с папкой /usr отлично работает на пару с шифрованным корневым разделом (смотри выше; сжатый образ это часть корневой файловой системы, а потому также является зашифрованным).
C Generic-ядром существует проблема при монтировании домашней папки на SD-карту, связанная с ждущим режимом и последующим пробуждением. Eee отключает /home при гибернации, а затем не может снова подключить его при пробуждении.
Данная проблема была решена в последнем ядре array.org.
На SD-карту можно переместить раздел /var - для уменьшения интенсивности операций записи на SSD и освобождения места на диске SSD.
На первый взгяд compiz не работает, как это было на Xubuntu 7.10 после обновления дистрибутива до 8.04 и применения скрипта RiceeeyTweak.sh, упомянутого в начале статьи. С теми же самыми настройками xorg.conf, где используется драйвер intel либо i810, выполнение команды compiz –replace приводит к выводу в консоль Checking for Xgl: not present, а также к другим ошибкам. Попытка исправить ситуацию установкой следующих пакетов приводит к появлению артефактов на экране и зависанию X. $ sudo apt-get install xserver-xgl libglitz-glx1 libglitz1 Для восстановления в этом случае нажмите <CTR><ALT><F1> и удалите эти пакеты. Забавно, что 915resolution вроде бы работает, а glxgears утверждает о частоте кадров > 700, так что графическое ускорение, похоже, тоже работает. Полагаю, что я вполне смогу жить и без compiz, поскольку он главным образом используется только для демонстрации возможностей графики.
*При чистой установке Ubuntu 8.04, Hardy Heron, «из коробки» на машине 4GB Surf 701 с 2GB оперативной памяти, Hardy определяет и отображает правильное разрешение экрана (800×480) на Eee, даже несмотря на то, что это разрешение не упомянуто в списке допустимых разрешений экрана в настройках. Также при этом отлично работает Compiz. К нему нужно лишь применить небольшой упомянутый выше хак - перемещение окна вверх за пределы экрана путём удержания <Alt> и перетаскивания окна.