- Подписка на печатную версию:
- Подписка на электронную версию:
- Подшивки старых номеров журнала (печатные версии)
LXF103:Ответы
Материал из Linuxformat.
Содержание |
Ответы
- Есть вопрос по Open Source? Пишите нам по адресу: answers@linuxformat.ru
Память на подробности
В: Существует ли программа, позволяющая узнать, какая память установлена в машине – параметры чипов, частоту шины и тому подобное? Crucial предлагает утилиту ActiveX для IE, которая выполняет эту работу, но у меня не Windows, и я не хочу устанавливать дополнения к браузеру, которые получают столь тесный доступ к моему оборудованию.
gb, с форумов
О: Я знаю две программы, отображающие такие данные. lshw (http://ezix.org/project/wiki/HardwareLiSter) – консольная программа, показывающая достаточную информацию о Вашей компьютерной системе, включая сведения о памяти. Вот пример её вывода.
*-memory description: System Memory physical id: 40 slot: System board or motherboard size: 4GB *-bank:0 description: DIMM SDRAM Synchronous 800 MHz (1.2 ns) product: PartNum0 vendor: Manufacturer0 physical id: 0 serial: SerNum0 slot: DIMM0 size: 1GB width: 64 bits clock: 800MHz (1.2ns) *-bank:1
Графическая альтернатива – HardInfo (http://hardinfo.berlios.de), которая есть на LXF DVD каждого номера. Она показывает различные наборы информации о компьютере. Вместе эти программы могут дать Вам всю нужную информацию. Кстати, результаты вывода этих программ чрезвычайно полезны для нас, когда мы пытаемся ответить на вопросы.
Слежка за адресами
В: Я получаю доступ к моему компьютеру на работе через корпоративную VPN. Годами IP-адрес моей рабочей машины не менялся, но недавно оказалось, что он изменился один или два раза за неделю. Есть ли простой способ, чтобы мой компьютер (Kubuntu 7.10) посылал мне письмо с новым адресом, когда он меняется?
Javier
О: Прежде чем что-то делать, выясните, разрешает ли это Ваш работодатель. Иметь доступ к рабочей сети из дома приятно; потерять из-за этого работу – отнюдь нет!
Специальной утилиты для этого я не знаю (даже после 50 писем от читателей LXF с разьяснениями), но это легко сделать с помощью короткого скрипта, который можно запустить через Cron.
#/bin/sh IPADDRESS=$(/sbin/ifconfig eth0 | sed -n ‘s/.*inet addr:\([^ ]*\).*/\1/p’) if [[ “${IPADDRESS}” != $(cat ~/.current_ip) ]] then echo “Your new IP address is ${IPADDRESS}” | mail -s “IP address change” you@your.mail echo ${IPADDRESS} >|~/.current_ip fi
Реальная работа начинается со второй строчки: там применено регулярное выражение для извлечения текущего IP-адреса из вывода ifconfig. Он сравнивается с адресом, сохраненным при предыдущем запуске; для этих целей используется файл ~/.current_ip, но сгодится любое место, доступное Вам на запись и недоступное для нахождения другими. Если адреса отличаются, скрипт посылает письмо при помощи команды mail и пишет новый адрес в .current_ip.
Команда mail – это стандартная программа для отправки писем из командной строки или скрипта, но ей нужен установленный локальный SMTP. Если mail и ее зависимости не установлены на Вашем компьютере, удобнее будет взять SendEmail, устанавливаемую из Synaptic. Она может использовать любой SMTP-сервер. Замените команду mail в скрипте на sendEmail -s smtp.work.com -f you@work.com -t you@home.co.uk -u “IP address change” -q
Первый аргумент – это адрес почтового сервера на работе (на время тестирования можно удалить опцию -q [quiet – бесшумно]).
apt-get вне сети
В: Мой домашний компьютер с Ubuntu не подключен к Интернету, но у меня есть быстрое соединение в колледже. Есть ли инструмент, который я мог бы использовать на компьютере (c Windows), присоединенном к Интернету, для разрешения зависимостей?
Мне нужен способ ввести имя программы, которую я хочу установить, получить список её зависимостей и запихать его в Windows-приложение, чтобы добыть файлы и все прочее, от чего зависит приложение.
Tuxmando, с форумов
О: Способов есть как минимум два. Быстро и легко можно сделать с использованием опции ‘Generate package download script’ [Генерировать скрипт загрузки пакетов] в Synaptic. Отметьте пакеты, которые Вы хотите установить, затем выберите эту опцию в меню File; она создаст скрипт командной строки, запустив который, Вы сможете скачать пакеты. Затем перенесите пакеты на Вашу машину с Ubuntu и там поместите их в /var/cache/apt/archives или воспользуйтесь опцией меню ‘Add downloaded packages’ из Synaptic для их установки. Основной недостаток этого способа – скрипт требует наличия wget, поэтому Вам придется установить его на компьютере, с которого будете скачивать.
Как альтернативу, можно использовать apt-get из командной строки с опцией --print-uris. Apt-get будет автоматически пытаться установить все зависимости, а --print-uris выведет URL всех необходимых файлов. Используя grep и cut, достаньте URL из вывода с помощью
apt-get --print-uris --yes install pkgspec | grep ^\’ | cut -d\’ -f2 >downloads.list
Например, при запуске этой команды с заменой ‘pkgspec’ на ‘postgrey’ создастся файл, содержащий
http://security.ubuntu.com/ubuntu/pool/universe/ libn/libnet-dns-perl/libnet-dns-perl_0.59-1build1.1_i386.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libb/libberkeleydb-perl/libberkeleydb-perl_0.31-1_i386.deb http://gb.archive.ubuntu.com/ubuntu/pool/main/ libd/libdigest-sha1-perl/libdigest-sha1-perl_2.11-1build1_i386.deb http://gb.archive.ubuntu.com/ubuntu/pool/main/ libd/libdigest-hmac-perl-dfsg/libdigest-hmac-perl_1.01-5_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libi/libio-multiplex-perl/libio-multiplex-perl_1.08-3_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-cidr-perl/libnet-cidr-perl_0.11-1_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-ip-perl/libnet-ip-perl_1.25-2_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/libn/libnet-server-perl/libnet-server-perl_0.94-1_all.deb http://gb.archive.ubuntu.com/ubuntu/pool/ universe/p/postgrey/postgrey_1.27-4_all.deb
Как Вы можете видеть, здесь приведены и сама программа, и ее зависимости. Скопируйте download.list на USB-брелок и перенесите его на компьютер с быстрым Интернет-соединением. Многие программы FTP и менеджеры закачки умеют читать список URL для скачивания из файла по типу
wget --input-file myurilist
В строке ‘pkgspec’ можно задать больше одного имени пакета. Однако Вам необходимо время от времени запускать apt-get для обновления. Если Вы пользуетесь Интернетом не из дома потому, что Ваш домашний компьютер сидит на медленном модемном соединении, не опасайтесь проблем: apt-get update много не загружает. Если же у Вас вообще нет доступа в Интернет, можете запустить
apt-get --print-uris update
и скачать файлы в другом месте, затем скопировать, распаковать и переименовать файлы Sources в /var/lib/apt/lists.
Конфликт пользователей
В: Я установил Ubuntu с LXF100/101 и нашел установку очень впечатляющей. Однако когда я стартую компьютер с нуля – после нормального завершения работы – все мои установки в Ubuntu исчезают, и приходится все заново переустанавливать и настраивать. Я теряю настройки пользователя Thunderbird, все обновления и даже сохраненные документы. Этой проблемы не наблюдается с установленной на этой же машине SUSE 10.3.
Можете ли вы просветить меня, как избежать таких повторов? Покамест я не выключаю компьютер, опасаясь потерять все.
Нет подписи
О: А не используете ли Вы одно и то же имя пользователя и домашнюю директорию и для Ubuntu, и для SUSE? Если да, то проблема вызвана тем, что два дистрибутива отводят разные числовые ID для этого пользователя. В результате пользователь SUSЕ может писать в директорию, а пользователь Ubuntu нет.
Хотя вполне возможно сделать идентификаторы пользователя в обоих компьютерах дистрибутивах одинаковыми, это внесет букет собственных проблем. В дистрибутивах могут не совпадать версии некоторых программ; тогда они будут конфликтовать при записи настроек. Новая версия программы обычно может читать установки, записанные более старой версией, но обратное не всегда верно.
Самый безопасный способ работать в двух (или больше) разных дистрибутивах – это иметь отдельные пользовательские каталоги. Вы можете использовать похожие имена, но надо будет изменить путь к домашней директории. Например, пусть у Вас в обоих дистрибутивах будет пользователь с именем ‘pearse’, а директории пользователя сделайте /home/pearse-suse и /home/pearse-ubuntu.
Для изменения домашней директории в SUSE запустите Yast и зайдите в User Management. Выберите пользователя, кликните на кнопке Edit, зайдите во вкладку Details и измените домашнюю директорию на pearse-suse. Отметьте галочкой Move to New Location и нажмите на Accept для применения изменений. Если Вы сделали это, зайдя под тем же именем пользователя, может оказаться, что Вам не выйти из системы; тогда нажмите Ctrl-Alt-Backspace для перезапуска X, затем зайдите снова. Это также можно сделать, выйдя из рабочего стола и отредактировав файл passwd в консоли от имени суперпользователя (root), запустив vipw, изменив и записав домашнюю директорию Вашего пользователя. Затем выполните
mv /home/pearse /home/pearse-suse
для перемещения директории.
В Ubuntu таким же способом можно использовать консоль root или меню System > Administration > Users and Groups для запуска менеджера пользователей. Перед этим откройте терминал, затем зайдите в менеджер пользователей, выберите Вашего пользователя и нажмите Properties, выберите вкладку Advanced и измените домашнюю директорию. Вы также должны изменить собственную группу пользователя на ‘users’ для соответствия установкам SUSЕ. Ubuntu не имеет опций для переименования домашней директории, поэтому переключитесь в ранее открытый терминал (Вы не сможете ничего открыть после смены домашней директории) и запустите
sudo mv /home/pearse /home/pearse-ubuntu
затем выйдите и зайдите снова.
Графические инструменты менеджера пользователей в обоих дистрибутивах должны показать числовой ID пользователя. Оба дистрибутива по умолчанию присваивают первому пользователю номер 1000, но если это не так, надо изменить UID в Ubuntu. Это можно сделать из консоли root, не заходя в рабочий стол, с помощью
sudo -i vipw #вносим изменения chown -R pearse: ~pearse
Первая строка дает Вам доступ в качестве root; vipw работает, как сказано выше (никогда не редактируйте /etc/passwd напрямую); а последняя строка применяет измененные значения к Вашей домашней директории и всему ее содержимому.
Наконец, убедитесь, что все в Вашей директории принадлежит тому же пользователю, запустив следующие команды от имени root:
chown -R pearse: /home/pearse
Конечно, в этом случае Вы получите две различные домашние директории со своими почтовыми папками и другими документами, разбросанными по ним. Общее имя пользователя и UID позволяют получить доступ к обоим директориям из каждого дистрибутива, поэтому было бы легче общие файлы сделать доступными и там и там, что можно сделать с помощью символьных ссылок. В терминале SUSE запустите следующие команды:
ln -s ../pearse-suse/Mail ../pearse-ubuntu/Mail ln -s ../pearse-suse/documentsl ../pearse-ubuntu/documents ln -s ../pearse-suse/photos ../pearse-ubuntu/ photos
чтобы похожие директории (и соответственно общие данные) были доступны в обоих дистрибутивах. Не проделывайте это для любых директорий, где есть настройки, так как обновление программ в одном дистрибутиве приведет к поломке в другом или в обоих дистрибутивах. Это еще одна причина держать две отдельных домашних директории.
Пароли и разделы
В: Вчера я хотел попробовать простой, маленький дистрибутив, и прожег Knoppix 3.2 с DVD LXF63. Все прошло нормально, кроме того, что я не знаю пароля root. Перепробовал все возможные комбинации, типа ‘visitor’, ‘Knoppix’, ‘lxformat’ и другие, но ни одна не подошла. Я посмотрел все вопросы (LXF62 и LXF63), но народ нигде не спрашивал вас про учетную запись root. Я хочу использовать GParted, а он работает только под root.
Заодно, не могли бы вы подсказать мне изящный способ переименовать раздел на жестком диске USB под Fedora 7? Я сумел изменить разрешения (они мне не годились), но мне ни в жизнь не понять, как его переименовать.
Крумб Ф. Пенсом [Croombe F Pensom]
О: Вы слегка нас озадачили (кто сказал «что нового?»), потому что Knoppix 3.2 нет на LXF63 DVD – там была версия 3.7. Не имели ли Вы в виду более ранний диск от Linux Format? Замешательство усугубилось тем, что Knoppix 3.7 включает не GParted, а QtParted (поскольку Knoppix – это KDE-дистрибутив). Так или иначе, ответ следующий, что бы Вы ни запускали от имени root: откройте терминал, выбрав System > Konsole в меню K, затем наберите в строке su. Это даст Вам доступ от root. Пароля здесь нет, и отсюда Вы можете запускать любую программу. Попытки запуска программ, требующих для доступа прав root, напрямую из меню дадут различный результат. Большинство выкинет окошко с требованием ввести пароль, а это невозможно: пароля-то нет. Другие, вроде QtParted, всегда запускаются от root. su в терминале позволит запускать все что угодно от имени root.
Что Вы подразумевали под «переименованием разделов»? Если Вы хотите сменить нумерацию, используемую в узлах устройств /dev/hdN (например, потому, что создавали и удаляли разделы не по порядку), это можно сделать с помощью Fdisk. Запустите
fdisk /dev/hda
затем нажмите P – появится таблица разделов, X для входа в режим эксперта и F для исправления порядка разделов. Наконец, нажмите W для записи Ваших изменений на диск.
Если Вы хотите изменить метку файловой системы (часто называемую именем тома), то метод зависит от вида используемой файловой системы. Легче всего это сделать с системой ext2/3: просто наберите
e2label /dev/sda1 новое_имя
Эквивалентная команда для ReiserFS –
reiserfstune --label новое_имя /dev/sda1
а для XFS Вы должны использовать
xfs_admin -L новое_имя /dev/sda1
Максимальная длина метки файловой системы – 16 символов для ext2/3 и ReiserFS, в XFS Вы ограничены 20-ю знаками.
Так как Вы упоминали разрешения, я сомневаюсь, что Вы используете файловую систему MS-DOS на этом диске, но для комплекта Вам необходим пакет MTools для изменения метки файловой системы FAT. Он использует глобальный файл конфигурации /etc/mtools/mtools.conf и файл для каждого пользователя ~/.mtoolsrc. Вам необходимо пометить раздел жесткого диска буквой в стиле MS-DOS, в секции вроде этой:
drive D: file=”/dev/sda1”
Затем можно изменить метку тома:
mlabel D:новое_имя
Вы также можете запустить mlabel без нового имени тома – тогда будет показано старое имя тома и запрошено новое.
Апатичные апплеты
В: Я пробовал установить KMoon и KWeather в Dapper Drake, а теперь и в Gutsy, но они не запускаются. Их нет в меню, и когда я пытаюсь запустить их из консоли, то получаю “command not found”. Мне очень нравятся оба этих апплета. Locate находит их файлы; может, они установились не в те директории? Я новичок и не знаю, как оценить (или исправить) ситуацию, если что-то идет неправильно.
Valorie
О: Обе эти программы не являются самостоятельными: это апплеты панели Kicker в KDE. То есть Вы не можете их «запустить», даже из меню или оболочки. Вы можете точно увидеть, что файлы пакетов установлены, используя dpkg. Например,
dpkg -L kmoon
покажет все файлы из пакета kmoon. Быстрый способ найти программу, установленную из пакета - поискать в путях, содержащих ‘bin/’, так как программы обычно устанавливаются в один из каталогов /bin, /sbin, /usr/bin или /usr/sbin, как здесь:
dpkg -L kmoon | grep bin/
В этом случае не выведется ничего, потому что нет установленных запускаемых программ. Для использования этих программ кликните правой кнопкой на пустом месте панели Kicker и выберите ‘Add Applet to Panel...’ [Добавить апплет на панель...]. Откроется окно с описанием всех апплетов Kicker, установленных в Вашей системе, в котором Вы сможете выбрать то, что хотите добавить. Если же на вашей панели нет свободного места, кликните на рукоятку перетаскивания слева от существующего апплета и пройдите оттуда в меню панели.
Свободу шрифтам
В: Я часто работаю с документами и таблицами с работы, содержащими шрифты Microsoft – Times и Arial, которых у меня нет. Я скачал шрифты Liberation от Red Hat для замены, прочитав о них в LXF95. Когда я установил их в каталог /usr/share/fonts/truetype, они стали доступны в OpenOffice.org. Как определить, какой шрифт OpenOffice.org использует вместо шрифта Microsoft и заменить его на эквивалентный из Liberation? А еще, как мне заставить Firefox использовать шрифты Liberation вместо шрифтов Microsoft, заданных на web-странице?
'Я прочел в Linux Format Special, что OpenOffice.org создает файлы меньшего размера, чем Microsoft Office, но нахожу, что это далеко от истины. OpenOffice.org сохраняет пустой DOC-файл как 65 КБ и пустую XLS-таблицу как 95 КБ. Почему так много? Я использую OpenOffice.org версии 2.2 из Ubuntu 7.04 с LXF94 DVD.
Эдвард Харрингтон [Edward Harrington]
О: Архив RedHat содержит только сами шрифты – понадобится немного большее, чтобы использовать их как замену шрифтов Microsoft. Как это сделать, зависит от того, установлены ли шрифты глобально, как у Вас в /usr/share/fonts, или только для пользователя в ~/.fonts. В первом случае добавьте нижеследующий код в /etc/fonts/local.conf, во втором в ~/.fonts/local.conf. (В обоих случаях, создайте файл, если его не существует.)
<?xml version=”1.0”?> <!DOCTYPE fontconfig SYSTEM “fonts.dtd”> <fontconfig> <match target=”pattern”> <test qual=”any” name=”family”><string>Times New Roman</string></test> <edit name=”family” mode=”assign”><string>Liberation Serif</string></edit> </match> <match target=”pattern”> <test qual=”any” name=”family”><string>Arial</string></test> <edit name=”family” mode=”assign”><string>Liberation Sans</string></edit> </match> <match target=”pattern”> <test qual=”any” name=”family”><string>Courier</string></test> <edit name=”family” mode=”assign”><string>Liberation Mono</string></edit> </match> </fontconfig>
При этом любая программа, попытавшаяся загрузить один из шрифтов Microsoft, будет использовать альтернативу из Liberation, и все web-страницы будут выглядеть, как задумал автор, даже если у Вас не установлены шрифты от Microsoft. В этом случае также не нужно изменять все документы, которые Вы создали в OpenOffice.org, так как они могут ссылаться на шрифты Microsoft и выглядеть точно так же, когда Вы пошлете их пользователям Windows. Вы можете найти больше информации об этом и вышеприведенном коде по адресу http://uwstopia.nl/blog/2007/05/free-your-fonts.
По нашему опыту, OpenOffice.org сохраняет гораздо меньшие файлы, чем Word и Excel, но пустой файл – это нетипичный пример. Word сохраняет в файле много избыточной информации – при загрузке документа в OpenOffice.org и сохранении его как DOC размер файла обычно уменьшается; но большее уменьшение достигается при использовании файлов Open Document, сжимаемых с помощью Zip.
Основы брандмауэра
В: Пересылаю ответ моего друга на заданный мной вопрос. «Можешь ли ты настроить правильно правила Iptables? Тебе нужно что то вроде
iptables -A INPUT -i eth0 -p tcp --syn -m state -- state NEW -j NFQUEUE
Если система удаленная, исключи SSH-порт или то, что ты используешь для соединения с нею.»
Я не знаю, как «исключить SSH-порт», и не могу спросить его снова, так что буду благодарен за любую вашу помощь.
Cih, с форумов
О: Не зная вопроса, который Вы задали своему другу, очень трудно дать точный ответ, так что приведем общие соображения об использовании Iptables. Linux-программа Netfilter, предоставляющая услуги брандмауэра, встроена в ядро, а Iptables – программа, позволяющая настраивать для него правила. Ваши правила фильтруют входящие пакеты на eth0, которые запрашивают новое TCP- соединения (--syn).
Iptables – очень мощный, но и очень низкоуровневый продукт. Это значит, что Вы можете дать брандмауэру конкретные инструкции, и он будет делать именно то, что Вы скажете, невзирая на то, что Вы действительно хотели сделать. Поэтому использование Iptables без детальных знаний очень опасно. Вы можете заблокировать свой компьютер или создать правила, которые, по Вашему мнению, защитили бы систему, а они на самом деле дали бы «добро» любому потенциально опасному трафику. Для безопасной настройки Iptables нужно одно из двух: либо хорошая книга или учебник по этому вопросу и время, чтобы прочитать и понять ее, либо графический интерфейс.
Существует немало хороших интерфейсов, и все они предоставляют в общем одну и ту же функцию: помогают сообщить программе, что надо отфильтровать, а затем генерируют правила Iptables. Доступные пакеты включают Firewall Builder (http://www.fwbuilder.org), Guarddog (http://www.simonzone.com/software/guarddog) и Shoreline Firewall (http://www.shorewall.net). Первый – GTK-программа, хорошо подходящая к рабочему столу Gnome или Xfce, Guarddog – программа KDE (они похожи, но отличаются своими подходами), а Shoreline Firewall – программа-скрипт, трудная для настройки с первого раза, но гораздо более гибкая. Любая из них способна защитить Вашу систему, так что попробуйте их и решите, какая Вам больше всего нравится.
Комментарий про SSH-порт был потому, что присланное Вам правило блокирует весь TCP-трафик извне. Это прекрасно, если у Вас не запущено никаких серверов, но если имеется в виду машина, к которой Вы получаете удаленный доступ через SSH, можно заблокировать самого себя. Поэтому друг советует добавить правило, разрешающее SSH-трафику – это трафик на порт 22 (порт SSH) – передаваться, чтобы сохранить возможность присоединяться удаленно. Это легко сделать, установив параметры в любой из программ, упомянутых ранее. Понятно, что если Ваш компьютер – не удаленный сервер, то совет явно лишний.
Если Вы имеете дело с удаленным компьютером, запустить графический интерфейс программы, возможно, не удастся. Однако все эти программы генерируют стандартные правила Iptables, и Вы можете запустить их на локальной машине, убедиться, что они верны, а затем перенести их на удаленный компьютер.
Пакеты-самоделки
В: Я обычно удаляю установленные приложения с помощью apt-get remove в Ubuntu. Недавно начал компилировать программы из исходников и наткнулся на проблемы с их удалением. Я пробовал использовать make uninstall, но тогда требуется наличие Makefile. Выходит, я должен сохранять все мои Makefile для удаления всех скомпилированных программ, которые я установил? Не очень-то практично.
Ghost, с форумов
О: Вы можете заново создать Makefile, распаковав архив с исходниками и запустив ./configure в этой директории. Учтите: если Вы передавали какие-либо опции в ./configure в первый раз, когда распаковывали архив, Вы должны использовать эти опции снова. Затем можете сделать make uninstall из директории с исходниками.
Но есть лучшее решение, интегрирующее «самосборные» программы с Вашим менеджером пакетов, чтобы все можно было удалить (или обновить) обычным путем. Установите CheckInstall (имеющийся в директории Главное на любом DVD Linux Format) и используйте его вместо make install. Процесс установки при этом становится таким:
./configure make sudo checkinstall --type=debian --install=yes
Как Вы можете видеть, вызов CheckInstall заменяет make install. Он запускает make install, а затем собирает пакет Debian и устанавливает его с помощью dpkg. В результате скомпилированная программа не просто устанавливается, а становится видимой в Synaptic, откуда Вы ее можете потом удалить.
У CheckInstall много опций – он не ограничен пакетами, которые используют make install (обо всем этом можно прочитать в документации), но Вам этого достаточно.
Воскресите мой ноутбук!
В: Хочу записать Linux на внешний жесткий диск, подключенный через USB2.0, и использовать его для загрузки моего ноутбука. Проблема в том что мой ноутбук – старый IBM Thinkpad, поэтому я думаю, что надо использовать дискету для загрузки с внешнего диска (как было упомянуто в учебнике «Первые шаги» LXF99). Мне нужна такая установка на моей настольной машине, потому что CD-привод не работает.
Как мне сделать дискету, передающую загрузку на USB? Есть ли разница в настройке загрузки с USB для полновесных и «легких» дистрибутивов?
Джеймс Велгус [James Velguth]
О: Не все внешние жесткие USB-диски допускают загрузку: читайте наш ответ, чтобы понять, умеет ли это Ваш экземпляр. Загрузка с дискеты и передача загрузочного процесса на внутренний жесткий диск не особо отличается от выполнения этого с внешним диском. Обычно простейший способ установки – загрузить дистрибутив с CD/DVD и установить на USB-диск. Дойдя до секции загрузчика, установите MBR (Master Boot Record) на внешний диск вместо внутреннего. Современные ядра используют библиотеки SCSI для всех жестких дисков, так что Ваш внутренний диск будет /dev/sda, а внешний – /dev/sdb. Мы опробовали это на PCLinuxOS с DVD LXF101; там есть специальные опции установки на USB-диски.
После такой установки дистрибутив должен загружаться на любом компьютере с поддержкой загрузки с жестких дисков USB. Иначе Вам придется создать дискету, содержащую загрузчик Grub. Вы можете использовать готовый образ с http://tinyurl.com/2f62dt. Скачайте pdlfloppy.img.gz и запишите его на диск
gzip -dc pdlfloppy.img.gz | dd of=/dev/fd0
Эта дискета создана для загрузки установки Pendrivelinux, поэтому отредактируйте файл конфигурации в /mnt/floppy/boot/Grub/menu.list для ссылки на соответствующие файлы на жестком USB-диске. Для PCLinuxOS первая запись меню будет выглядеть так:
title linux kernel (hd0,0)/boot/vmlinuz BOOT_ IMAGE=linux root=/dev/sdb1 acpi=on resume=/dev/sdb5 splash=silent vga=788 initrd (hd0,0)/boot/initrd.img
Ссылка на /dev/sdb будет правильна, если только Ваш BIOS не делает USB-устройство первым в цепочке (sda), когда Вы загружаетесь с него, но все метки разделов Grub ссылаются на первый раздел на первом диске, так что измените это на (hd1, 0).
Теперь загрузитесь с дискеты и выберите Вашу новую запись в меню. Если получите ошибку ‘file not found’, нажмите C для входа в консоль Grub и наберите
find /boot/vmlinuz
Эта команда выдаст номер раздела, содержащего Ваше ядро – он-то и должен быть в строке kernel в меню. Подсветите запись меню и нажмите E для редактирования, затем сделайте то же самое со строкой kernel. Измените путь и нажмите B для загрузки с измененными значениями. Если это сработает, сделайте изменения постоянными в файле menu.lst.
Другой подход – добавить это в menu.lst:
root (hd1,0) chainloader +1
Это просто запустит загрузчик на Вашем внешнем диске – полезно, если на диске несколько дистрибутивов.
* В Knoppix нет диска
В: Купив Compaq Desktop SR5280CF, я попытался попробовать Live CD. Пробовал Mepis, PCLinuxOS и OpenSUSE; все три загружались на моей машине, но не находили жесткий диск. Ни Konqueror, ни KDiskFree не показали hda1 или sda1. Этот компьютер шел с предустановленной Vista, и все работало. Что-то неправильно с этим компьютером или Linux, или есть что то, что я упустил?
Хай И [HuiYi]
О: У нас были такие же проблемы с новым ноутбуком, и все из-за установок SATA в BIOS. Наш компьютер позволял выбрать, использовать или нет AHCI для интерфейса SATA (Advanced Host Controller Interface – стандарт для SATA-связи). Нам приходилось выключать AHCI в редких случаях, когда надо было загрузить Windows (и кто после этого скажет, что в Linux поддержка оборудования хуже?), а если забывали его включить – Knoppix не находил жесткий диск. Ubuntu и Gentoo видели его, а другие нет.
Проверьте Ваши настройки BIOS и попробуйте изменить что-нибудь, связанное с протоколом SATA. Или попробуйте другой Live CD – Ubuntu прекрасно работает с Вашей системой.
Часто задаваемые вопросы... Шифрование
- Охранять свои данные от посторонних глаз важно не только теоретикам конспирации – это должен уметь каждый.
- Почему я должен шифровать свои файлы? Мне нечего скрывать.
Вы так уверены? А вы храните счета на своем компьютере? Ваши письма не содержат приватную информацию типа паролей или подтверждений сетевых транзакций?
- Допустим, у меня есть информация, которую я предпочел бы защитить. Что я должен для этого сделать?
Можете зашифровать файлы с помощью, например, GnuPG. Тогда содержимое файлов будет недоступным, пока вы его не дешифруете с помощью пароля. GnuPG – GPL-заменитель PGP (Pretty Good Privacy), стандарта де-факто для шифрования файлов.
- Шифровать файлы поштучно – большая морока. Нет ли более простого способа их обезопасить?
Есть такой: это шифрованная файловая система. Она автоматически шифрует файлы при записи и дешифрует при чтении. Вы набираете пароль только один раз, когда монтируется сама файловая система. Если ваш ноутбук будет потерян или украден, никто не сможет прочесть информацию с зашифрованного каталога (обычно это /home).
- Почему только /home? А все зашифровать нельзя?
Нет, потому что будет невозможно получить доступ к ПО, необходимому для монтирования разделов. Да и какой смысл зашифровывать системные директории, если там только пакеты с бесплатно загружаемых дисков?
- И что мне надо сделать?
Тут есть альтернативы. Ядро Linux содержит dm-crypt, используемый для создания полностью зашифрованных файловых систем. Имеется несколько программ управления созданием и монтированием таких файловых систем. Я предпочитаю LUKS (Linux Unified Key Setup); другой вариант – EncFS. Это файловая система Fuse (см. LXF80). Вместо шифрования всей файловой системы, она шифрует индивидуальные файлы: их имена и содержимое. Это не самый безопасный вариант, поскольку размеры файлов и их права доступа все-таки видимы, но он более удобен.
- A как насчет резервных копий?
Если вы шифруете всю файловую систему, нужно смонтировать ее перед снятием копий; для защиты резервных копий зашифруйте их с помощью GnuGPG. Когда вы используете EncFS, сама файловая система стандартна, зато содержимое файлов выглядит как мусор. Можете использовать любую программу для сохранения их резервных копий, файлы останутся зашифрованными. Это удобно, если резервные копии хранятся на удаленном сервере.
- Это спасет файлы, если я забуду свой ноутбук в поезде?
Увы, нет, если его похитят спящим (suspend) при неразмонтированной зашифрованной файловой системе. EncFS автоматически выполняет размонтирование файловой системы, если она какое-то время не используется – но только при отсутствии открытых файлов. Если для шифрования раздела, например, /home, вы используете dm-crypt, нужно выйти из системы и размонтировать /home перед переводом компьютера в режим спячки.
Краткая справка. Компиляция приложений
Большинство дистрибутивов имеют большие репозитории программ, содержащие готовые пакеты практически на все случаи жизни, но иногда необходимо собрать пакет из исходных текстов. Обычная причина – отсутствие обновленного (или какого-либо вообще) пакета для вашего дистрибутива, или необходимость исправить исходный код, добавив функцию или убрав ошибку.
Поддержать систему в актуальном состоянии помогает менеджер пакетов вашего дистрибутива, но если вам необходимо собрать пакет из исходных текстов, то процесс чрезвычайно прост.
Во-первых, распакуйте архив с исходными текстами (tarball) одной из двух команд:
tar xvzf foo-1.2.3.tar.gz tar xvjf foo-1.2.3.tar.bz2
Поздние версии tar умеют определять, как был создан архив (gzip или bzip2), так что аргументы z или j можно опустить. Исходные тексты обычно распаковываются в папку с именем, совпадающим с названием архива; после выполнения команд введите cd foo-1.2.3. Найдите файлы с именами README или INSTALL и прочтите их – обычно там находится инструкция по установке. Стандартная процедура такова:
./configure make su -c “make install”
Первая команда проверяет вашу систему, убеждаясь в соблюдении всех зависимостей и установке оптимальных параметров для программы. Неплохо сначала выполнить команду ./configure --help, чтобы увидеть имеющиеся опции. Вторая команда компилирует приложение, помещая созданные файлы в текущий каталог. Для конфигурирования и компиляции права root не нужны, но третья стадия – это копирование скомпилированных файлов в системные подкаталоги, а потому требует прав root. Вот почему мы используем su для выполнения только этой команды от имени root. Пользователи Ubuntu должны использовать вместо нее команду
sudo make install
Если вы не указывали для ./configure путь, то по умолчанию скомпилированная программа устанавливается в /usr/local/bin. Если при работе в RPM-системе configure сообщает, что библиотека не найдена, а вы точно знаете, что она у вас есть – установите соответствующий библиотеке пакет -devel, например, libbar-devel.