Журнал LinuxFormat - перейти на главную

LXF145:Ответы

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая страница: «==Ответы== : Есть вопрос по открытому ПО? Пишите нам по адресу [mailto:answers@linuxformat.ru answers@linuxformat.r…»)
 

Текущая версия на 12:06, 11 июля 2014

Содержание

[править] Ответы

Есть вопрос по открытому ПО? Пишите нам по адресу answers@linuxformat.ru


[править] 1 Проблема Ntop

В Я загрузил Ntop и задал пароль. Программу в браузере я вижу, но попытки получить доступ к разделу администратора блокируются — мои имя пользователя и пароль не работают. Как мне их сбросить?

Мик Браун [Mick Brown]

О Пароль можно сбросить, удалив содержащий его файл, заново запустив исходную команду и задав новый. Имя файла – ntop_pw.db, и обычно он находится в /var/lib/ntop; если его там нет, обнаружьте его командой locate. Перед удалением файла выясните, кто его владелец. Затем удалите файл и запустите Ntop из терминала, от имени root, с такими опциями:

/usr/bin/ntop -P /var/lib/ntop -u ntop --setadmin-password

Здесь подразумевается, что файл пароля находился в /var/lib/ntop и принадлежал пользователю ntop – если Ваша система настроена иначе, внесите должные изменения. Вам предложат задать пароль; сделайте это и закройте сеанс. Альтернатива – указать пароль в командной строке (тогда Вы будете видеть, что вводите, но будьте осторожны, потому что все те, кто находится рядом с Вами, тоже это увидят). Команды будут такие:

/usr/bin/ntop -P /var/lib/ntop -u ntop --set-adminpassword=mynewpassword

Теперь перезапустите Ntop как обычно, хотя бы через диспетчер сервисов Вашего дистрибутива, и постарайтесь больше не забывать пароль. НБ


[править] 2 Screen наготове

В Я захожу с работы на свой домашний компьютер Fedora 13 через SSH. Если надо запустить нечто продолжительное, я открываю сеанс Screen, запускаю задание и отключаюсь от экрана, а возобновляю сеанс уже дома.

Как-то я начал выполнять давно просроченное обновление Yum в терминале через SSH, и забыл предварительно запустить Screen. Мне нужно было уходить через 10 минут, и я думал, что все закончится быстро, но казалось, что оно вообще не кончается! Не то что это было катастрофой, но мой коллега покрикивал, чтобы я торопился.

Нет ли способа передачи активного процесса в сеанс Screen уже после его запуска? В идеале, я бы переключил задачу Yum на Screen, отключился, вышел из системы и уехал домой. Возможно ли такое?

Марк [Mark]

О Помимо очевидного варианта – извлечь из этого случая урок и больше не забывать загодя запускать Screen, есть еще пара возможностей. При закрытии оболочки все запущенные ею процессы закрываются тоже – так работает управление процессами в Linux. Существуют способы предотвратить это – например, Screen, а также запуск команды с опцией nohup, но в Вашем случае применять их было уже поздно.

В оболочке есть встроенная команда disown, отсоединяющая процесс от запустившей его оболочки. При работающей программе нажмите Ctrl+Z, чтобы приостановить ее, затем дайте команду bg, для перезапуска в фоновом режиме. Это полезно и само по себе, для случаев, когда Вы запускаете программу и забываете добавить & к командной строке. После этого дайте команду

jobs

Она выведет список задач, работающих в Вашей оболочке. Если Вы не запускали никаких других заданий в фоновом режиме, такая задача, вероятно, будет только одна. В начале строки идет номер задачи, и Ваша задача, скорее всего, будет иметь номер 1. Теперь ее можно отсоединить от оболочки следующей командой:

disown %1

Не забывайте предварять номер задачи знаком %. Это отсоединяет задачу от оболочки, которую Вы после этого сможете закрыть, не закрывая программу. Основной недостаток данного подхода – потеря вывода программы. Определить, работает ли программа, можно командой ps, но когда она завершится, не будет способа определить успешность ее выполнения. Альтернатива – применение программы Reptyr, доступной на сайте http://tinyurl.com/4tsfquc. Придется загрузить и скомпилировать исходный код (вряд ли какие-то дистрибутивы уже ввели Reptyr в свой состав). Получите идентификатор процесса (PID) программы с помощью pgrep или pidof:

pgrep programname
pidof programname

Переключитесь на другую оболочку или сеанс Screen и скомандуйте

reptyr PID

Программа переключится со старой оболочки на новую. Для большей уверенности, перед закрытием старой оболочки можно скомандовать disown, чтобы программа отсоединилась от исходной оболочки. В Ubuntu Maverick или более новой версии Reptyr откажется работать, из-за настроек безопасности, принятых по умолчанию. О преодолении этой проблемы см. на man-странице Reptyr.

Еще один подход – перед установлением SSH-соединения с Вашим компьютером позаботиться о запуске Screen. Это не просто ехидное замечание: можно добавить в свой профиль пару строк, запускающих Screen перед каждым запуском оболочки через SSH:

if [[ -n “${SSH_TTY}” ]] && [[ -z “${STY}” ]]; then
 screen -xRR
fi

Теперь при каждом открытии сеанса SSH будет возобновляться существующий сеанс Screen, если таковой имеется, а в противном случае – создаваться новый. ГМ

[править] 3 Саботаж BackupPC

В Недавно я последовал вашему совету и установил BackupPC — на LinkStation, где обновил BIOS, чтобы установить Debian Etch — и настроил его на выполнение резервного копирования трех компьютеров Windows, принадлежащих моим жене и детям, а также моего собственного, с Ubuntu.

Резервное копирование компьютеров Windows выполняется надежно, но мне так и не удалось заставить BackupPC заработать с Ubuntu. Полагаю, проблема тут в SSH, потому что я получаю ошибку ‘ListFilesReceive’. Я настроил SSH на доступ ноутбука с Ubuntu к LinkStation без пароля, и задал также обратное правило, но ничего не работает. Пока я обхожусь Duplicity, но хотел бы, чтобы всю работу выполнял сервер, а не мой ноутбук.

Ричард Мур [Richard Moore]

О BackupPC работает от имени пользователя backuppc, но нуждается в доступе с правами суперпользователя-root к компьютерам, резервные копии которых требуется создать. Вам надо сгенерировать ключ SSH для пользователя backuppc на сервере и добавить его к файлу authorized_keys для пользователя root на каждом клиенте. На системе Ubuntu, где пользователь root обычно блокирован, это необычно. Но root там все-таки есть – у него просто нет пароля для входа в систему. Для BackupPC это не проблема, потому что здесь применяются не пароли, а ключи SSH.

Чтобы сгенерировать ключ на сервере, нельзя просто зарегистрироваться как пользователь backuppc: этот пользователь не имеет возможности входа в систему. Поэтому запустите с правами root команду

su -s /bin/sh -c “ssh-keygen -t rsa” backuppc

При желании в качестве типа ключа можно взять dsa, а не rsa; а если и на клиенте, и на сервере работает новейшая версия OpenSSH, можно использовать типы ключей ecdsa. Команда создаст в домашнем каталоге пользователя backuppc, обычно – /var/lib/BackupPC, два файла: .ssh/id_rsa и .ssh/id_rsa.pub. Второй файл, общий ключ, нужно добавить в список авторизованных ключей пользователя root на клиенте, поэтому скопируйте его на этот компьютер и дайте команды

sudo mkdir -p /root/.ssh
sudo cat id_rsa.pub | tee -a /root/.ssh/authorized_keys

Здесь нужно использовать tee, потому что стандартные методы перенаправления не работают с sudo, а перенаправление вывода команды sudo необходимо, поскольку команды запускаются не от имени root. BackupPC по-прежнему не сможет установить соединение, потому что при первой попытке соединения SSH с хостом тот запросит у Вас подтверждения его сигнатуры SSH, поэтому вернитесь на сервер искомандуйте

su -s /bin/sh -c “ssh root@laptop” backuppc

По запросу введите yes. Эта операция выполняется только один раз – сигнатура сохраняется в .ssh/known_hosts, и теперь автоматизированное резервное копирование должно заработать. Если проблемы не прекратятся, попробуйте включить в конфигурационном файле настройку $Conf{XferLogLevel}. Чем выше ее значение, тем больше информации заносится в журнал. Чтобы журнал не заполнялся слишком быстро, советуем добавить эту команду в файл настройки конкретного компьютера в /etc/BackupPC/pc, чтобы лишняя информация не засоряла журналы компьютеров, работающих без проблем. МС

[править] 4 Мне не остановиться

В У меня возникла проблема, хоть и не критичная, но досадная. Почему-то мне никак не выключить компьютер, если только я не перехожу в Windows и не запускаю команду останова оттуда. Все операции и команды, которые мне советовали попробовать, выводят меня в меню двойной загрузки. Мой компьютер — HP Pavilion Elite HP410f, на нем стоят Ubuntu 10.10 и Windows 7.

Харли Диллз [Harlie Dills]

О Начнем с того, что для выключения компьютера не обязательно загружать Windows. Перезагрузка тоже корректно завершает работу ОС, вот что для Вас важно. В интервале между перезапуском и появлением загрузочного меню можно нажать кнопку питания и выключить компьютер. Это рискованно только тогда, когда Вы уже выбрали один из пунктов загрузочного меню (или один из них был выбран по умолчанию по причине тайм-аута).

Теперь поищем правильное решение. Проблема, скорее всего, с интерфейсом ACPI (Advanced Configuration and Power Interface), и кроется в конфликте между системой ACPI Linux и BIOS Вашей материнской платы. Первым делом зайдите на сайт изготовителя материнской платы и гляньте, нет ли там обновлений BIOS – обычно они есть, потому что платы редко поставляются с новейшей версией BIOS. Обновления BIOS могут исправить все виды странных проблем, поэтому стоит иметь новейшую версию.

Если это не поможет, следующим шагом попытайтесь временно блокировать всю поддержку ACPI в ядре. В меню загрузки выделите пункт, соответствующий Ubuntu, и нажмите клавишу e, чтобы начать редактирование. Найдите строку, начинающуюся с подстроки linux, и припишите в ее конец подстроку acpi=off. Нажмите Ctrl+X, чтобы загрузиться с этим параметром. Если выключение сработает, это подтвердит наличие проблемы ACPI. Но совсем блокировать ACPI Вам вряд ли захочется. Попробуйте добавлять следующие опции в пункт загрузочного меню, поодиночке или в комбинации, пока не определите, какая из опций или их комбинаций является рабочей.

acpi=ht
pci=noacpi
acpi=noirq
pnpacpi=off
noapic
nolapic

Первая опция достаточно сурова: она блокирует львиную долю функций ACPI, так что не пользуйтесь ею без крайней необходимости.

Найдя решение, сделайте его опцией по умолчанию – не править же параметры ядра при каждой загрузке! Отредактируйте /etc/default/grub от имени root: найдите элемент для GRUB_CMDLINE_LINUX – вероятно, Вы распознаете содержимое как опции ядра, к которым Вы делаете добавку. Вставьте сюда Ваши работающие параметры ядра, сохраните файл и введите изменения в силу, скомандовав

sudo update-grub

PH

[править] 5 Обновление-чудовище

В Начиная работать с Linux, я установил Fedora Core 1 и, получив возможность установить все, я так и сделал. Провозившись с получением Sendmail, Apache, FTP, PHP, MySQL и остального, я бы хотел сохранить настройки и все прочие ассоциированные с ними файлы. Система их уже не обновляет, поскольку они чересчур устарели, а я хотел бы извлечь преимущества нововведений в платформе. Требуемые изменения — например, обновления PHP с 4.x на 5.x, MySQL, улучшенная система безопасности, исправления в ядре, и т. д.

Недавно у меня появился свободный компьютер, и я загрузил Fedora Core 5, затем обновился до Core 6 или 7 и пришел в ужас: обновление отняло 10 часов. Мой сервер в общем не для критичных задач, но я не хочу парализовать его на целый день. Можно ли рассчитывать, что при обновлении сохранятся все скрипты и файлы настройки? Можно ли обновиться с Fedora Core 1 на Fedora 14? Сохранятся ли файлы настройки для пакетов типа sendmail и httpd? Сохранится ли все ПО, часть которого установлена в каталогах наподобие sbin, а не только в пользовательских каталогах?

Тони Райдер [Tony Rider]

О Fedora Core 1 – дистрибутив явно доисторический, и обновление с него до новейшей версии – непростой процесс. Прямое обновление почти наверняка обречено на провал, а обновление через промежуточные версии, если Вы сумеете их найти, продлится целую вечность. Glibc, ключевая библиотека в системе Linux, претерпела немало изменений, и Вы замучаетесь последовательно обновлять ее через все промежуточные версии. Поскольку Вам нужен работающий компьютер, а не победа над техническими сложностями, единственно разумным подходом будет полное резервное копирование всех Ваших данных и файлов настройки с последующей установкой новейшего дистрибутива с нуля. Резервное копирование пользовательских данных пройдет очень просто; если у Вас отдельный раздел home – просто не переформатируйте его. В противном случае создайте резервную копию всего содержимого /home на внешний (или сетевой) диск и восстановите его после установки – при установке обязательно создайте отдельный каталог /home.

Вы упомянули Sendmail и MySQL; они хранят свои данные в каталоге /var, поэтому он тоже подлежит резервному копированию, а по завершении установки – восстановлению на отдельный раздел. Данный подход выглядит трудоемким, но альтернативный вариант отнимет еще больше времени и только вызовет разочарование. Вам нужно создать резервные копии содержимого /etc и /var, а /sbin проблем не доставит, потому что там только программы. Затем выполните новую установку и импортируйте все данные и настройки в новую систему. Если Ваши программы не настолько устарели, что с тех пор сменился способ хранения данных или настроек, то новое ПО должно позволить Вам импортировать старые файлы. Возможно, в процессе Вы получите различные сообщения об ошибках, но предложенный метод все же действительно самый простой.

Чтобы убедиться, что у Вас установлено то же самое ПО, что и ранее, сгенерируйте список установленных программ с помощью rpm:

rpm --query --all

Перенаправьте вывод этой команды в файл или на принтер – по нему Вы потом проверите наличие программ. Сравните содержимое файлов /etc/passwd в обеих системах и убедитесь, что идентификаторы пользователей (user ID) одинаковы. Если это не так, измените владельцев файлов, иначе будут проблемы с правами доступа. НБ

[править] 6 UPS и NUTs

В У меня есть UPS CyberPower, и документация, поставляемая в комплекте, заявляет о поддержке Linux, которая на деле не обеспечивается. Я установил пакет, поставляемый в комплекте, а когда выяснилось, что он не работает — то и бета-версию пакета.

Я вновь посетил сайт производителя, загрузил с него Deb-пакет и попытался установить его, но получил сбой (в KpackageKit), со следующим сообщением:

An error occurred that we weren’t expecting

При запуске pwrstat программа утверждает, что демон не запущен, но вывод команды ps показывает, что демон pwrstatd работает:

jseidel@EDP15:~$ pwrstat -status
Daemon service is not found.
jseidel@EDP15:~$ pgrep pwr
root 1480 0.0 0.0 8740 792 ? S 14:16 0:00 /usr/sbin/pwrstatd

Я пытался поработать с поставщиком, но тип из техподдержки упорно «передает вопрос разработчикам», а те вообще не отвечают. Не могли бы вы предложить мне какой-нибудь вариант корректного останова на случай сбоя питания?

Йон Зайдель [Jon Seidel]

О Вот что бывает, когда компании не понимают Linux и Open Source. Они пытаются писать собственный драйвер, вероятно, взяв за основу ПО для Windows, поскольку так все работает в мире Windows. (Мы воздержимся от комментариев, хорошо ли сообщение об ошибке отражает этот факт.) Они тестируют свое ПО с одной-двумя версиями пары дистрибутивов и считают работу сделанной; а если в Вашем дистрибутиве все устроено по-другому, то Вам не повезло. Пора им понять, что давным-давно существуют проекты Open Source, делающие то, что им нужно, и для поддержки их продукции достаточно передать необходимую информацию соответствующим командам,.

В случае с ПО для UPS, Вам требуется пакет Network UPS Tools или NUT (www.networkupstools.org). Он поддерживает ряд моделей CyberPower, хотя получил информацию методом обратной разработки.

Кроме текущей поддержки, NUT позволяет работать с несколькими UPS, что может пригодиться, если Вы решите поставить оборудование от другого изготовителя. Установите NUT через менеджер пакетов Вашего дистрибутива, а затем отредактируйте файлы настройки в /etc/nut, чтобы они отвечали Вашей модели UPS. В файле ups.conf заведите раздел для Вашего устройства в следующем формате:

[<upsname>]
driver = <drivername>
port = <portname>

Имя для Вашей UPS сойдет любое, а драйвер зависит от конкретного устройства CyberPower – просмотрите раздел совместимости на сайте NUT. В качестве порта обычно используется /dev/ttyS0 – первый последовательный порт. Добавьте в файл upsd.users пользовательскую запись – она определит входное имя и пароль, разрешающие выполнять административные действия – например, выключение компьютера:

[<username>]
password = <pass>
upsmon master

Затем свяжите все воедино, добавив в файл upsmon.conf:

MONITOR upsname@localhost username pass master

В файле nut.conf, либо оставьте для MODE значение none, чтобы Ваш дистрибутив запускал серверы upsdrv, upsd и upsmon, или установите для MODE значение standalone и запустите общий сервис NUT. Запустите сервисы и отключите шнур питания от UPS, следя за файлами журналов, чтобы убедиться в том, что все работает. Затем изучите другие опции – например, отправку уведомлений о событиях. ГМ

[править] 7 Нужен вентилятор

В На моем ноутбуке Acer 5315 была предустановлена XP. Я решил избавиться от Windows и установить Ubuntu 10.10. С установкой проблем не было, но потом процессор перегрелся, и через 10 минут система отключилась, поскольку в Ubuntu вентилятор немедля отказался работать. Поиск в Google обнаружил немало товарищей по несчастью, с той же проблемой — и с такой же моделью, как и у меня, и с другими.

Решать проблему предлагалось двумя методами: либо посредством редактирования Grub 2, либо обновлением BIOS. Обновление BIOS — шаг несколько рискованный, и некоторые люди, решившиеся на него, сообщили, что он не помог. Поэтому я решил перепробовать варианты редактирования Grub, но ни один не сработал. Похоже, Linux-программы для управления вентилятором нет, и в системе 10.10 тоже нет ничего подходящего. Мне приходится охлаждать ноутбук, подкладывая под него пузырь со льдом, чтобы работать подольше. Не присоветуете ли способа все-таки заставить вентилятор работать?

Терри Андерсон [Terry Anderson]

О Обновление BIOS отнюдь не настолько рискованно, как гласит распространенное мнение, особенно если речь идет о ноутбуках. Самый серьезный риск вызван возможностью сбоя питания в ходе обновления, а ноутбук, работающий от электросети, но с исправной батареей, защищен от этой случайности. Материнские платы редко выпускаются с BIOS, полностью свободной от ошибок. Частенько обновление оказывается доступным еще до того, как первая поставка продукции достигнет магазинов, поэтому обновление – это, в общем случае, дело хорошее.

Ваша проблема вызвана необычным решением Acer управлять вентилятором через разработанное ими Windows-приложение, а не аппаратно или через ACPI. Установка любой другой ОС, включая и обычную версию Windows, приводит к отказу вентилятора. Если обновление BIOS не поможет, попробуйте скрипт, который должен решить проблему. Загрузите его с сайта http://ubuntuforums.org/showpost.php?p=4925392, распакуйте архив и отредактируйте скрипт acer_fancontrol, подогнав его к Вашей системе. Комментарии в этом скрипте объясняют различные опции.

Чтобы убедиться в работоспособности скрипта, запустите его командой

sudo ./acer_fancontrol

Если все в порядке, поместите его и скрипт mempat в /usr/local/bin и отредактируйте /etc/rc.d/local с правами root:

sudo cp acer_fancontrol /usr/local/bin
sudo cp mempat /usr/local/bin
sudo gedit /etc/rc.local

Перед строкой exit 0 добавьте следующую строку:

/usr/local/bin/acer_fancontrol

Благодаря этому скрипт управления вентилятором будет автоматически запускаться при загрузке. Хотя скрипт приведен на форумах, посвященных Ubuntu, ничто не мешает ему работать с любым другим дистрибутивом, но метод его запуска при загрузке для дистрибутивов, основанных не на Debian, будет отличаться от приведенного здесь. ГМ

[править] 8 Потеря Windows

В Я решил попробовать Lubuntu с LXFDVD142, создав систему с двойной загрузкой, где второй системой была Windows XP. Обе системы работали правильно, и все было хорошо, пока менеджер обновлений не обновил ОС. После перезагрузки опция XP исчезла из меню загрузки — и теперь XP у меня нет.

Я попробовал исправить ситуацию, воспользовавшись процессом, который был описан в одном из ваших журналов [Grub 2: Польза Super Grub Disk, LXF128]. В двух строках имелись опечатки; я знаю, что вместо unmount следует использовать umount, а вместо mn — mnt. Есть ли там другие опечатки, я сказать не берусь, но процесс, запущенный в терминале, других ошибок не зарегистрировал. Но опции XP в загрузочном меню все равно нет!

Затем я переустановил Lubuntu и восстановил XP. И снова все было хорошо, пока не вмешался менеджер обновлений. XP опять исчезла. С помощью Clonezilla я восстановил XP с внешней резервной копии. Однако я хотел бы продолжать с Lubuntu, если вы поможете мне решить проблему.

Брайан Митчелл [Bryan Mitchell]

О Приносим Вам наши извинения за опечатки в статье. XP Вы не потеряли – на самом деле потерялась только ее опция в загрузочном меню. Пошаговые инструкции в руководстве по Grub 2 должны восстановить правильное меню загрузки – похоже, что сбой выдает модуль обнаружения ОС, OS-prober. Grub сам генерирует строки меню для копии Linux, скриптом из /etc/grub.d/10-linux, но другие ОС (например, Windows) обнаруживаются особой программой, OS-prober, которая вызывается другим скриптом из каталога /etc/grub.d. Проверьте, находит ли OS-prober установленную копию Windows, командой

sudo os-prober

Вывод команды должен выглядеть приблизительно так:

/dev/sdb1:Windows Vista (loader):Windows:chain
/dev/sdb2:Windows 7 (loader):Windows1:chain

где каждая строка соответствует обнаруженной копии Windows. Чтобы эта команда работала, разделы Windows не обязательно должны быть примонтированы. Эту информацию использует Grub для построения элементов загрузочного меню, и если программа OS-prober дает ошибку, то источник проблемы найден.

В отчетах об ошибках сообщалось о неработающем Grub и проблемах с OS-prober в некоторых конфигурациях Ubuntu 10.10. Один из методов устранения этих ошибок – настроить Grub программой Super Gru Disk (www.supergrubdisk.org). Загрузитесь с CD и в появившемся диалоговом окне выберите Grub Options. Вам на выбор предложат две опции – первая восстанавливает Grub, уничтоженный (пере)установкой Windows. Вторая опция, Update Grub Config, выполняет именно то, что требуется Вам. Выберите ее, и опция загрузки Windows в загрузочном меню восстановится. НБ


[править] Часто задаваемые вопросы

[править] Fuse

  • Это ведь не связано с защитой компьютера от сбоев питания? [fuse по-англ. в т. ч. бытовой электропредохранитель, «пробка», — прим. ред.]

Не связано. Fuse означает Filesystem in USErspace [файловая система в пространстве пользователя]. Это модуль ядра, позволяющий файловым системам запускаться в пространстве пользователя вместо пространства ядра.

  • Ну и в чем тут фишка?

Традиционные файловые системы, типа ext3, XFS или ISO9660, входят в ядро Linux – они либо встроены в ядро, либо устанавливаются в виде модулей, включаемых в ядро при загрузке. Это нормально для файловых систем, но означает, что либо их код должен быть включен в главное дерево ядра, как с указанными тремя, либо нужно скомпилировать код специально для этого ядра. Обновите ядро, и все ваши внешние модули не будут работать, пока вы их не восстановите, как печально известно многим владельцам видеокарт NVidia.

  • Чем Fuse от них отличается?

Fuse – тоже модуль ядра; он является частью официального ядра Linux с версии 2.6.14. Он обеспечивает мостик между пространством пользователя, где запускается файловая система Fuse, и самим ядром, позволяя использовать файловые системы, не являющиеся частью ядра.

  • А мне какая с этого польза?

Да в общем небольшая, если только вы не решите разработать собственную файловую систему. Но это не значит, что другие не захотят такого сделать, и существует много файловых систем, которых без Fuse могло бы и не быть.

  • Есть уже и Ext2/3, и ReiserFS, и XFS — зачем нам еще много файловых систем?

Если вы так ставите вопрос, то незачем. Но Fuse очень часто применяется для создания виртуальных файловых систем.

  • Тут и с реальными-то системами не все ясно — а что такое виртуальные?

Виртуальные файловые системы не существуют на диске, но предоставляют информацию с помощью файлов-интерфейсов. Fuse предоставляет множество таких: SSHFS позволяет монтировать каталоги на удаленном компьютере, используя только SSH; EncFS дает зашифрованную файловую систему, и отдельные каталоги могут быть зашифрованы и смонтированы через EncFS для доступа. NTFS-3G обеспечивает полное чтение/запись NTFS-разделов Window – это одна из немногих файловых систем Fuse, являющаяся файловой системой в традиционном смысле этого слова.

  • А больше Fuse ничего не умеет делать?

Существуют файловые системы для монтирования различных онлайн-сервисов, как если бы они были местными каталогами. Можно подмонтировать системы хранения онлайн или запасник фотографий, вроде Flickr. Если ваш цифровой фотоаппарат не монтируется как USB-накопитель, и вам необходим Gphoto2 для извлечения фотографий, можете использовать файловую систему Fuse для монтирования.

  • Где я могу узнать больше?

Домашняя страница Fuse – http://fuse.sourceforge.net, а список поддерживаемых файловых систем – на вики Fuse, http://tinyurl.com/94gza.


[править] Краткая справка про…

[править] Компиляцию ПО

Большинство дистрибутивов имеют огромные репозитории готовых сборок почти всех требуемых вам программ. Но иногда бывает нужно установить пакет, скомпилировав его из исходного кода. Обычные причины для этого – отсутствие новейшего пакета для вашего дистрибутива или необходимость модификации исходного кода. Для этого сначала распакуйте исходный код из архива следующей командой:

tar xvf foo-1.2.3.tar.gz

Команда tar умеет определять, как сжат архив, и вам нет нужды сообщать ей об этом. Исходный код обычно распаковывается в каталог с тем же именем, что и архив. Перейдите туда командой cd foo-1.2.3. Отыщите файлы с именами README или INSTALL – обычно там есть инструкции по установке. Стандартная процедура выглядит так:

./configure
make
su make install

Первая команда проверяет систему, чтобы убедиться в наличии всех необходимых зависимостей и установить все опции программы. Для просмотра доступных опций неплохо предварительно запустить команду

./configure -help.

Вторая команда компилирует ПО, помещая создаваемые файлы в текущий каталог. Для настройки и компиляции не обязательно быть суперпользователем, но на третьем шаге выполняется копирование файлов в системные каталоги, а тут уже нужны права root. Поэтому для запуска третьей команды используется префикс su, благодаря которому команда выполняется с правами root. Пользователи Ubuntu вместо нее должны использовать команду:

sudo make install

Если команде ./configure не дано других указаний, скомпилированная программа обычно устанавливается в /usr/local/bin. Если у вас RPM-система, и configure сообщает об отсутствующей библиотеке, но вам точно известно, что она есть, установите соответствующий пакет -devel – например, libbar-devel.


[править] Большой вопрос

[править] Какой лучший метод избавиться от старых файлов?

В Когда появляется новый дистрибутив, я предпочитаю обновлять свою систему, сохраняя домашний каталог и все настройки, чтобы не создавать резервные копии и переконфигурировать все после установки. Я вполне доволен этой процедурой, но из-за нее у меня на диске скапливается множество старых файлов. Нет ли какого-нибудь (по возможности) простого и (очевидно) безопасного метода очистить систему от старого хлама?

Мартин Уэллс [Martin Wells]

О Эта задача имеет две подобласти: системные файлы и домашний каталог. Неиспользуемые пакеты склонны при удалении оставлять файлы, засоряющие /etc. В большинстве дистрибутивов есть специальный инструмент для их чистки. В дистрибутивах на основе Debian запустите Synaptic и щелкните по кнопке Status. Если у Вас уцелели старые файлы настройки, Вам будет доступна опция Not Installed (Residual Config); выберите ее и перечисленные пакеты, и Synaptic удалит файлы.

Еще один быстро заполняющийся каталог – /var. Файлы журналов в /var/log могут расти очень быстро, особенно если что-то не в порядке, поэтому обязательно установите logrotate. Эта программа архивирует и сжимает последние записанные файлы журналов и удаляет старые, препятствуя превращению /var/log в черную дыру. Можно также поискать в /var/lib старые файлы данных, оставленных серверами, которые Вы не используете. Если у Вас есть программы, использующие MySQL для хранения данных, может оказаться, что в /var/lib/mysql сидит множество файлов mysqld-bin. Для обычных пользователей настольных ПК хранение этих файлов – пустая трата места на диске. Отключите опцию их сохранения – отредактируйте /etc/mysql/my.cnf, закомментировав строку log-bin, и перезапустите MySQL. Старые файлы придется удалять, но новые создаваться уже не будут.

В каталоге home проще всего найти давно не использовавшиеся файлы командой find:

find ~ -mtime +365

Эта команда найдет все файлы, не модифицировавшиеся в течение года. Тем не менее старые файлы могут быть все еще нужны. Если ваш каталог home не монтировался с опцией noatime, то каждый файл содержит запись о том, когда его в последний раз открывали для чтения – это более полезно. Команда

find ~ -atime +365

обнаружит все файлы, не открывавшиеся за последний год. Запуск команды mount в терминале покажет опции монтирования каждоя файловой системы; если среди опций файловой системы, содержащей /home, нет noatime, воспользуйтесь этим методом. Для find имеются графические оболочки, например, KFind, находящаяся в самом низу главного меню KDE, но никогда ничего не удаляйте, не будучи абсолютно уверены в его ненужности. Если сомневаетесь, создайте резервные копии файлов перед их удалением:

tar czf abouttobegone.tar.gz $(find ~ -atime+365)

Ваша задача имеет и специальное решение – программу BleachBit (http://bleachbit.sourceforge.net), которая автоматически выполняет большую часть работы. Она не будет сканировать все файлы в вашей системе, как Вы с помощью find, но выявит наиболее вероятных кандидатов на удаление – например, временные файлы браузера. Для пущей безопасности BleachBit может истребить файлы так, что их будет не восстановить. Но это замедлит процедуру. НБ

[править] Шаг за шагом

[править] Очистка от ненужных файлов

[править] 1 Удалите старые файлы настройки

Synaptic может удалить файлы настройки пакетов, которые вы удалили; это не только повысит безопасность, но и сэкономит дисковое пространство.

[править] 2 Двоичные журналы MySQL

Настройка log-bin в my.cnf может вызвать генерацию большого объема данных в /var, а там совсем не желательно позволять исчерпание дискового пространства.

[править] 3 Найдите старые файлы

Команда find с опциями -mtime и -atime поможет найти все старые файлы, которые больше не нужны. Другие полезные опции указаны на man-странице.

[править] 4 Можно и графически

Программы типа KFind предоставляют графический интерфейс для команды find. Пользоваться им проще, но вы не получите всех возможных опций.

[править] 5 Очистка мусора

BleachBit помогает найти файлы, созданные теми программами, что имеют обыкновение оставлять за собой хвост временных файлов.

[править] 6 Обойти ряд областей

Программе BleachBit можно дать указание игнорировать некоторые файлы или каталоги. То же самое можно сделать и с помощью опции -prune команды find.

Персональные инструменты
купить
подписаться
Яндекс.Метрика