LinuxBegin.ru - offline-версия от 26.04.2004
Главная | Все темы | Все статьи | Ссылки | Аналоги Windows-программ в Linux | Top 20

Впечатления об установке и настройке Red Hat Linux 9 Cyrillic Edition.День 11-12
(Все о дистрибутивах - обзоры и установка)


- В.А.Костромин, 24.09.03, Rus-linux.net -

День одиннадцатый. Samba.

Примечание: Хоть и называется эта моя заметка "День одиннадцатый", но рассказывается в ней о нескольких днях моих мучений с сервером Samba. О причинах задержки я расскажу по ходу, а пока - приступим!

Пообещал я вам в прошлом выпуске моих заметок, что займусь серверными приложениями, но, когда приступил, подумал - а что там смотреть? Работать они, без сомнения будут, с русским языком и кодировкой проблем быть не должно, уж у Apache точно, а у Samba - разве что в именах файлов на примонтированных дисках. Но раз уж пообещал, пришлось заняться запуском этих сервисов и рассказать о своих впечатлениях.

Начал я с Samba. Вообще-то на домашнем компьютере этот сервис и не очень нужен. Но, если (как в моем случае) есть два компьютера, причем на обоих организована многовариантная загрузка, то Samba помогает организовать взаимодействие между этими компьютерами при разных ОС, запущенных на двух компьютерах. Кроме того, я использую Samba на рабочем месте (где у меня базовая ОС тоже Линукс) для взаимодействия с компьютерами других пользователей, которые, естественно, в основном (да что там в основном, все!) работают под Windows. Так что в целях тестирования дистрибутива необходимо было с этим продуктом поэкспериментировать. Но провозился я с ним несколько дней!

Естественно, что пакет Samba у меня не был установлен (я же ставил минимальную конфигурацию), что и подтвердила команда

rpm -qa | grep samba

Ставлю в дисковод первый диск дистрибутива, монтирую его, и неожиданно получаю запрос пароля администратора, после ввода которого с удивлением вижу новое окно, изображенное на рис.24.


Рис. 24.

Удивление вызвано тем, что автоматически запустилась уже знакомая нам утилита установки и удаления программ. Я уже много раз вставлял этот диск в дисковод и почему-то только в этот раз сработал автозапуск. Это меня и удивило. Итак, после того, как прошла процедура проверки состояния пакетов в системе, появилось окно, изображенное на рис. 24. Как работать с этой утилитой, вы уже знаете (смотри "День пятый"), поэтому рассказывать об этом снова я не буду. Я задал установку "Файлового сервера для Windows" и заодно проверил, что Apache тоже установлен. Кроме http-сервера в группе "Web Server" я отметил для установки также дополнительные пакеты php, php-mysql, tux и webalizer. После чего щелкнул по кнопочке "Вперед".

Дождавшись завершения установки, я перешел в каталог /etc/samba и провел небольшую корректировку в файле smb.conf, а именно, поменял название рабочей группы на home:

[global]
љљљ workgroup = home

и раскомментировал строки, открывающие доступ к каталогам /home/public и /home/pc/%m (здесь %m изначает имя компьютера), причем, поскольку в исходном файле smb.conf в качестве общедоступного ресурса public был указан другой каталог, имя тоже пришлось поменять:

[public]
љљљ comment = Public Stuff
љљљ path = /home/public
љљљ public = yes
љљљ writeble = yes
љљљ printable = no
[pchome]
љљљ path = /home/pc/%m
љљљ public = no
љљљ writeble = yes
љ
Кроме того, домашние каталоги пользователей изначально открыты для них в том варианте конфигурационного файла, который был создан при установке пакета.

После этого я запустил программу настройки сервисов (о ней я тоже уже рассказывал), задал запуск smbd при загрузке компьютера на 3 уровне, сохранил конфигурацию, и для работы в текущем сеансе запустил сервис smbd кнопочкой "Запустить". Основной мой компьютер в это время работал под управлением Windows 98.

Выполняю на тестовом компьютере (его имя в сети old-lin, а имя основного - trend) команду

smbclient -L trend

и вижу список открытых ресурсов на компьютере trend:

	Sharename      Type      Comment
--------- ---- -------
E Disk
INSTALL Disk
C Disk
IPC$ IPC Взаимодействие между удаленными процессами

Server Comment
--------- -------

Workgroup Master
--------- -------
На основном компьютере в папке "Сетевое окружение" вижу, соответственно, два компьютера - см. рис. 25.

Рис. 25. Папка "Сетевое окружение" на компьютере trend.

Однако попытка открыть какую-либо папку на old-lin окончилась неудачей. У меня был затребован пароль, но ни один из извесных мне вариантов пароля (а какие еще варианты могут быть, если я полный и единственный хозяин в моей домашней сети!) не сработал. Вот в таком положении я и застрял на пару дней.

Вначале я считал, что причина заключается в неправильной настройке сервера Samba и пытался настроить его известным методом "научного тыка", меняя настройки в конфигурационном файле, причем руководствуясь только теми комментариями, которые в этом файле даны. Добился я только того, что компьютер old-lin перестал отображаться в папке "Сетевое окружение" Windows-компьютера. И тогда пришла уверенность в том, что начать придется с чтения документации (ЧЕРТ!). У меня под рукой была книга [1], электронные варианты двух изданий ([2] и [4]) книги "Using Samba", а также перевод на русский язык трех первых глав из первого издания этой книги [3]. Вы можете найти эти книги в "Библиотеке" сайта, или заказать твердую копию книги [4] в Интернет-магазине "Болеро". Кроме того, в том же магазине имеется еще одна книга на интересующую нас тему [5]. Что касается двух первых книг, то осмелюсь порекомендовать вам "Using Samba". В первых главах этой книги, которые, как я уже говорил, имеются и в русском переводе, очень хорошо рассказано о протоколе SMB, а потом и о настройках конфигурационного файла (но это уже по-английски). Книга же [1], насколько я успел с ней познакомиться, довольно неудобна в использовании. Но я не буду совсем уж ее ругать, тем более, что первоначальную настройку сервера Samba и Windows-клиента я делал как раз следуя рекомендациям этой книги.

Впрочем и [3] я тоже пролистал, и, добравшись до раздела 2.4, я, как мне показалось, обнаружил причину своих неудач. Вот небольшая цитата из [3]:

"Если вы используете Windows 98 или Windows NT Service Pack 3 и выше, вы должны добавить следующую запись в секцию [global] в конфигурационном файле Samba: encrypt passwords = yes. Дополнительно, вы должны использовать программу smbpassword (обычно расположенную в /usr/local/samba/bin/) для ввода комбинаций пользователь/пароль тех пользователей на сервере Unix, которые смогут получить доступ к ресурсам через зашифрованную базу данных клиентов Samba."

Я же не задал ни одного пользователя для сервера Samba и закомментировал строку об использовании шифрованных паролей. Ну, что-ж, будем исправяться!

Команду smbpassword я нашел в каталоге /usr/bin/, где нашлись еще несколько команд, имеющих отношение к Samba. Я решил воспользоваться командой smbadduser:

/usr/bin/smbadduser kos:kos

которая после запуска запросила и пароль для нового пользователя. После этого я раскомментировал строку encrypt passwords = yes в файле /etc/samba/smb.conf и снова перезапустил демон smbd.

Но эти действия к успеху не привели - доступа к ресурсам на old-lin из "Сетевого окружения" по-прежнему не было. И тогда я решил не метаться из стороны в сторону, а последовательно выполнять рекомендации одной из книг. В качестве такой я выбрал [1].

В соответствии с рекомендациями этой книги выполняю командуљ

smbclient -L old-lin -U kos

которая выдает следующий результат:
Domain=[HOME] OS=[Unix] Server=[Samba 2.2.7a]

Sharename Type Comment
--------- ---- -------
public Disk Public Stuff
IPC$ IPC IPC Service (Samba Server on old-lin)
ADMIN$ Disk IPC Service (Samba Server on old-lin)
kos Disk Home Directories

Server Comment
--------- -------
OLD-LIN Samba Server on old-lin
TREND trend

Workgroup Master
--------- -------
HOME OLD-LIN
В [1] еще рекомендуется войти клиентом на локальный сервер, что я и проделал с помощью команды

smbclient //old-lin/kos

И вполне успешно, потому что после ввода пароля и появления приглашения smb:> команда ls выдала список файлов моего домашнего каталога. љТаким же успешным был и результат выполнения команды
smbclient //trend/C


По команде ls я увидел и список файлов на диске C: компьютера trend. Делаю вывод: на old-lin с настройками Samba все в порядке, причину надо искать в Windows.

Перехожу на Windows-компьютер и проверяю правильность сетвых настроек в соответствии с рекомендациями главы 2 книги [1]. Вроде все правильно, однако в окне "Сетевое окружение" не появляется ничего, кроме строки "Вся сеть", щелчок мышкой по которой теперь приводит к появлению сообщения о том, что сеть недоступна. Чем дальше - тем больше!

Снова обращаюсь к книге [1] и нахожу рекомендацию запустить в DOS-окне команду net use F: hostservice, которую я и запускаю в следующем виде:
net use F: old-linkos

После этого в окне Проводника вижу дискљF: с перечнем файлов љмоего домашнего каталога на компьютере old-lin. Правда, имена файлов, которые были заданы русскими буквами в Unicode (помните, был создан файл "тест.utf"), отображаются непонятными комбинациями символов (см. рис. 26).


Рис.26. Компьютер old-lin со стороны Windows.

А "Сетевое окружение" по-прежнему ничего не показывает. Зато функция "Подключить сетевой диск" в меню Проводника успешно подключает ресурс public как диск G:.
Тогда я запускаю на old-lin (от имени суперпользователя и создав предварительно каталог /mnt/trend) команду
smbmount //trend/C /mnt/trend
Результат вы видите на рисунке 27.


Рис. 27. Ресурс Windows-компьютера, смонтированный на Linux-машине.

И снова с русским языком не все в порядке: вместо имени каталога "Мои документы" видим знаки вопроса. Правда, в данном случае возникает подозрение - а не виноват ли в этом Midnight Commander?

Но разбираться с этим буду завтра, а пока можно констатировать, что и Samba-сервер и Samba-клиент под Red Hat Linux 9.0 работают. И если не использовать русский язык в именах файлов, то проблем нет. Но все же необходимо еще поиграть опциями монтирования, может быть удастся и русские символы победить.

Замечание в скобках: Я и раньше встречался с такой ситуацией, когда 3 способа обзора локальной сети, а именно, через "Сетевое окружение", через "Поиск компьютера" и через "Подключение сетевого диска" дают совершенно разные результаты. Логику Misrosoft в этом случае постигнуть совершенно невозможно. Может кто-то может объяснить? А пока приходится пробовать все три варианта, авось какой-то сработает!

Список литературы и ссылки.

  1. Э.Бруксбенк, Д.Хабербергер, Л.Дойл, "SAMBA. Руководство системного администратора для профессионалов. Изд. Питер, Санкт-Петербург, 2001 год, 416 стр.
  2. Jay Ts, Robert Eckstein, and David Collier-Brown, "Using Samba, 2nd Edition" , February 2003 O'Reilly & Associates, ISBN: 0-596-00256-4 ( Копия в "Библиотеке" сайта).
  3. Robert Eckstein, David Collier-Brown, Peter Kelly, перевод - Абдрашитов Вадим, "Using Samba" , 1st Edition, O'Reilly & Associates, November 1999 (Копия в "Библиотеке" сайта).
  4. Robert Eckstein, David Collier-Brown, Peter Kelly, "Using Samba" , 1st Edition, O'Reilly & Associates, November 1999. (Копия в "Библиотеке" сайта").
  5. Колисниченко Д.Н., "Linux-сервер своими руками", Издательство: Наука и техника, 576 стр.

День двенадцатый. Samba и Apache.

Конфигурация сегодня та же самая - на компьютере old-lin работает сервер Samba под RedHat Linux 9.0, компьютер trend работает под Windows.

Для начала логируюсь под root-ом и добавляю в файл /etc/fstab строку

//trend/C /mnt/trend smb codepage=cp1251,iocharset=utf8

после чего выполняю команду mount /mnt/trend. По сравнению с тем, что вы видели на рисунке 27, изменений появилось не много: имя каталога "Мои документы" стало отображаться не знаками вопроса, а другими символами (см. рис.28), причем их число в точности равно числу символов в исходном названии, но все равно русским языком это не назовешь!


Рис. 28. Результат задания кодовой страницы cp1251 в файле fstab.


Но тут я припомнил, что где-то читал, что codepage надо устанавливать равной cp866. И вот, когда я изменил строку в fstab, придав ей следующий вид:

//trend/C /mnt/trend smb codepage=cp866,iocharset=utf8

все поправилось, и я смог нормально прочитать надпись "Мои документы", а также имена других файлов, заданные русскими буквами (см. рис.29).

Рис. 28. Результат задания кодовой страницы cp866 в файле fstab.

Так, в одну сторону наладили, теперь надо подойти со стороны Windows.

И тут я оказываюсь в тупике. Никаких способов настройки того, в какой кодировке отображаются имена файлов, я не знаю. Пытаюсь что-то найти, щелкнув правой кнопкой по букве сетевого диска в Проводнике и открыв пункт "Свойства", но там ничего не обнаруживается. Других идей в голову не приходит. Может что-то и можно сделать с помощью реестра Windows, но в реестре я не силен.

И все-же тупик не безысходный! Давайте посмотрим на это дело как-бы со стороны. У нас теперь Linux-машина уже может быть клиентом Windows-компьютера, то есть хранить на нем свои файлы, пусть даже их имена заданы русскими символами в кодировке UTF8. Может! Я этот факт специально проверил, скопировав (с помощью Midnight Commander под Линукс) ранее созданный файл "тест.utf" на примонтированный диск Windows-машины. При этом "читабельность" имени не пострадала (см.рис.28). Более того, и на стороне Windows имя этого файла отображается корректно, наравне с ранее созданными там файлами с русскими именами (см. рис.30).


Рис. 30. Файл с именем, заданным в кодировке Unicode, скопирован на примонтированный Windows-диск.

Либо при передаче файла по сети происходит автоматическая перекодировка, либо Проводник Windows 98 умеет работать с именами в Unicode.

С другой стороны, и Windows-компьютер может без проблем работать как клиент с Linux-сервером. В какой бы кодировке не сохранялись имена файлов на сервере, для клиента это не имеет значения, он будет нормально видеть имена тех файлов, которые он сам создал и сохранил на сетевом диске, предоставленном Linux-сервером.

Проблема остается только в том случае, если один пользователь работает с файлами прямо на Linux-сервере, а второй - на Windows-клиенте. Это хорошо видно на рисунках 31 и 32, показывающих один и тот же каталог на сетевом диске с двух разных "точек зрения".


Рис. 31. Каталог /home/kos/rus на Linux-сервере.


Рис. 32. Каталог /home/kos/rus со стороны Windows-клиента.

Если необходимо организовать такое взаимодействие, то выход я пока вижу только один: давать файлам имена, составленные из латинских символов.

На этом с Samba я заканчиваю и перехожу к http-серверу.

Apache.

Теперь мне Windows уже не нужен, так что на основном компьютере я тоже перегружаюсь под Linux. Там у меня стоит ASPLinux, версию которого я назвать затрудняюсь в силу того, что проводил несколько обновлений. Но ядро запускается 2.4.18, это я могу утверждать уверенно, потому при каждом запуске вижу меню GRUB, в котором это ядро стоит первым, а значит, загружается по умолчанию.

Если вы помните, http-сервер был у меня установлен при инсталляции системы, а при установке Samba я еще установил дополнительные модули. Так что осталось только запустить демон httpd, что я и делаю. И, введя в строке задания URL http://localhost, вижу в окне браузера тестовую страницу. На этой странице сказано, что конфигурационным файлом для сервера является файл /etc/httpd/conf/http.conf. Открываю этот файл и вижу в начале его предупреждение о том, что приведенные комментарии являются только подсказками и не стоит выполнять эти рекомендации, если вы не до конца понимаете, к чему это приведет. Но я уже несколько раз проделывал раньше настройки http-сервера, так что смело принимаюсь за редактирование. Я приведу вам только те строки получившегося у меня файла (снабжая своими комментариями), которые я как-то менял, и опущу те строки, которые остались такими, какими они были в исходном файле, сформированном из дистрибутивного пакета (включая, естественно, строки комментариев, начинающиеся символом #).

ServerName old-lin:80
Как сказано в комментарии, этот параметр часто определяется автоматически, но рекомендуется задать его явно. Причем указанное имя должно быть зарегистрированным DNS-именем.
DocumentRoot "/home/kos/ve"
Это тот каталог, в котором я держу контент своего сайта на локальном диске.
<Directory "/home/kos/ve">
В комментарии сказано, что этот параметр должен быть задан равным DocumentRoot.
LanguagePriority en ru da nl et fr de el it ja kr no pl pt pt-br ltz ca es sv tw
В этой строке я просто добавил "ru" на втором месте в списке (в исходном варианте "ru" по каким-то причинам вообще пропущен).
AddDefaultCharset KOI8-R
Здесь я заменил ISO-8859-1 на KOI8-R, поскольку все мои страницы создавались именно в этой кодировке.

После сохранения файла на диске я перезапустил демон httpd и попытался обратиться в браузере к сайту http://old-lin. Однако получил сообщение о том, что мне не разрешен доступ к каталогу / на этом сервере. После некоторых размышлений я понял причину: в конфигурационном файле имеется два параметра User и Group, задающие имена пользователя и группы, от имени которых сервер обращается к файлам на диске. А каталог /home/kos/ve, который задан как корневой каталог Web-сайта, принадлежит kos. После того, как я записал в этих строках:

User kos 
Group kos
и еще раз перезапустил сервер, я увидел в браузере картинку, изображенную на рис.33:


Рис. 33. Первый успешный запуск локального Web-сервера.

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

Но разбираться с этим опять придется уже завтра, а сегодня ограничимся тем, что сервер запустился и работает!

Замечу, что на завтра остался и еще один вопрос: для организации сайта я использую PHP и не ожидал, что так легко увижу в браузере что-либо приемлемое. Думал, что вначале придется настроить модуль работы с PHP. А тут все работает по умолчанию, без дополнительной настройки. Этот момент еще тоже предстоит осмыслить.

День тринадцатый.

Наверное все-таки какая-то магия в числе 13 существует. Вчера спокойно выключил свой тестовый компьютер old-lin, причем до самого выключения все работало нормально и никаких настроек, вроде, не менял (последнее изменение, как вы помните, было в файле /etc/fstab), а сегодня графический режим по команде startx не запускается. Сообщает, что не находит шрифта fixed. В чем может быть причина - непонятно. Я, правда, уже встречался с такой ситуацией (сообщение об отсутствии fixed) когда-то и помню, что долго тогда с этим бился. Не хочется сейчас терять на это время.

Но компьютер вообще-то работает. И приходит мысль - тогда и web-сервер должен работать, несмотря на отсутствие графики. Для начала проверяю (командой ps -ax | grep http), что он запущен. В ответе вижу целых 9 процессов httpd. Тогда перехожу к Windows-компьютеру, запускаю Internet Explorer и запрашиваю old-lin. И вижу титульную страницу своего сайта (рис.34).


Рис. 34. Видим сервер old-lin в браузере с Windows-компьютера.

Правда, снова приходится задавать кодировку, чтобы видеть читаемый текст. То есть вчерашняя проблема осталась. Но хочу обратить ваше внимание еще раз на то, что несмотря на сбой в работе графического интерфейса, система в целом и www-сервер в частности, остаются работоспособными. Так что настройку графического интерфейса я решил пока отложить и продолжить разбираться с настройкой сервера Apache.

Начать хочу с размещения контента. Хотя прошлый раз я и изменил корневой каталог сервера на /home/kos/ve, в принципе-то это неправильно. Из-за этого мне пришлось дать доступ серверу к моему домашнему каталогу, сменить на kos имя пользователя, под которым работает Apache. Я не уверен, но думаю, что делать так неправильно с точки зрения безопасности. Не получат ли в результате потенциальные (ибо реальных у этого сайта нет) пользователи сайта доступ ко всему содержимому моего домашнего каталога? На реальном сайте такого допускать, пожалуй, не стоит!

А кроме того, обратите внимание на то, что при инсталляции Apache создается каталоговая структура /var/www, в которой сразу размещается несколько интересных файлов. Правда, размещение контента сайта в каталоге /var мне не нравится. Дело в том, что я обычно размещаю каталог /home на отдельном разделе диска. Если вздумается обновить систему, этот раздел не переформатируется и все содержимое домашних каталогов пользователей (конечно, на моем компьютере речь идет только о моем домашнем каталоге, но тем не менее) остается в целости и сохранности. А для каталога /var я не имею привычки отводить отдельный раздел. Поэтому в случае переустановки системы весь контент будет уничтожен.

Поэтому сделал я так. Завел отдельный каталог /home/www, скопировал туда все содержимое каталога /var/www и командой

chown -R kos:kos /home/www/html

сделал владельцем каталога /home/www/html пользователя kos и группу kos, чтобы самому иметь возможность обновлять контент. Apache работает, по-видимому, с установленным SUID-битом, так что он туда доступ получит. А владельцем каталога /home/www/ и других его подкаталогов необходимо оставить пользователя root (так рекомендовано в руководстве).

После этого поместил туда контент сайта и изменил следующим образом строки конфигурационного файла /etc/httpd/conf/httpd.conf (на всякий случай сохранив предварительно резервную копию этого файла):

DocumentRoot "/home/www/html"
<Directory "/home/www/html">
User apache
Group apache

Кроме того, провел замену в этом файле всех вхождений /var/www на /home/www. После всего этого перезапустил демон httpd (поскольку графика не работает, делать это пришлось консольной командой httpd -k restart). В браузере, запущенном на компьютере trend, снова успешно получил доступ к обновленному сайту (специально проверил, что содержимое берется из каталога /home/www/html).

Теперь осталось разобраться с тем, почему приходится каждый раз менять кодировку в браузере. Начал заново просматривать файл /etc/httpd/conf/httpd.conf на предмет того, какая же опция может на это влиять, и обнаружил, что хотя и написал в своих заметках, что изменил строку

AddDefaultCharset ISO-8859-1
на строку
AddDefaultCharset KOI8-R
но фактически она осталась неизменной. Сделал эту поправку, перестартовал сервис и кодировка в браузере перестала сбиваться.

На этом я закончил эксперименты с http-сервером. По отношению к нему у меня пока дополнительных вопросов нет, ибо проверить с его помощью, как будет выглядеть моя страничка, я уже могу, а более глубокие настройки меня пока не волнуют.

А между тем у меня возникла новая проблема, требующая решения - когда я скопировал только часть содержимого сайта в каталог /home/www/html, место на диске кончилось. Команда df сообщает, что раздел использован на 100%. Между тем на диске у меня есть еще 2 раздела. В один из них я ставил Windows XP, которая без регистрации уже отказалась работать. Так что можно чуть расширить Линукс-раздел за счет Windows. Можно, конечно, сделать это и программой Partition Magic, но появилось желание испробовать свободную утилиту GNU/Parted, которая, по слухам, тоже умеет перепланировать разделы. Я с ней еще не работал, надо попробовать. Только придется ее еще сначала скачать из Интернет.

День четырнадцатый. GNU/Parted.

Я обещал, что сегодня займусь утилитой переразбиения диска. Для начала я занялся поиском этой утилиты на http://rpm.pbone.net/. И нашел сразу несколько разных пакетов. Меня интересовали только бинарные пакеты, поскольку заниматься компиляцией из исходников у меня нет пока навыка. В бинарном виде из последних по номеру версии вариантов были обнаружены parted-1.6.3-11 и parted-static-1.6.6-1. Я выкачал оба пакета и попытался их установить. Начал со второго, как имеющего более позднюю версию, но он отказался устанавливаться, сообщив, что ему нужен еще пакет parted-develop-1.6.6-1. Тогда я попробовал ставить parted-1.6.3-11. На сей раз получил сообщение, что такой пакет уже установлен.
И, действительно, команда /sbin/parted сработала (только запускать ее надо от имени root-а) и для начала выдала предупреждение о том, что у меня не все в порядке с таблицей разбиением диска на разделы. Причиной этого может быть то, что программа, с помощью которой создавались разделы, не имела правильных данных о геометрии диска. Опасности это не представляет, но может вызвать проблемы с некоторыми загрузчиками. Я давно уже знаю об этой проблеме из сообщений программы Partition Magic, поэтому соглашаюсь с предложением игнорировать проблему и продолжать работу. В ответ программа выдала информацию о том, что по мнению операционной системы диск /dev/hda имеет геометрию 784/255/63. После чего появилось приглашение программы к вводу команд, которое вы видите на рис. 35. 

Примечание: Рисунки, которые Вы видите, получены на другом компьютере, поскольку я не умею делать снимок экрана в консольном режиме, а графика у меня не работает. Но отличия заключаются только в том, что на old-lin те же сообщения выдаются белыми буквами на черном фоне, и, естественно, сообщение об ошибках в ситуации, приведенной на рисунке, не появилось. В остальном содержание сообщений абсолютно одинаковое. Заметьте также, что программу можно запускать как с консоли, так и в окне терминала.


Рис. 35. Сообщение программы parted при запуске.

Не зная поначалу, что делать дальше, я ввел в строке подсказки знак вопроса. И получил список возможных команд, который вы можете также точно получить по команде help (рис.36).


Рис. 36. Сообщение программы parted по команде help.

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

Таблица 1.
Minor
Start
End
Type
Filesystem
Flag
1
0,031
2000,280
primary
fat

2
2000,281
2306,206
extended


5
2000,312
2306,206
logical
linux-swap

3
2306,237 4314,331
primary ntfs

4
4314,331
6142,038
primary ext3

Из этой таблички становится ясно, что такое параметр MINOR в командах программы, - это просто номер раздела, который выдается той же командой.

Работу с программой я решил начать с удаления первого раздела (его тип FAT). После ввода команды

(parted) rm 1

очень быстро вновь появляется приглашение (parted) и команда print выдает ту же таблицу 1, но без первого раздела. Что ж, можно создать на освободившемся месте новый раздел

(parted) mkpart 0 2000,000

Запрашивается тип раздела, задаю primary. Потом программа просит снова ввести начало и конец раздела и появляется ее приглашение. По команде
(parted) print
убеждаюсь, что раздел создан и узнаю его младший номер (тот самый MINOR). Создаю на нем файловую систему ext2
(parted) mkfs 1 ext2
(команды (parted) mkpart 0 2000,300 и (parted) mkfs 1 ext2 можно было, по-видимому, выполнить за один прием, командой (parted) mkpartfs p ext2, но я делал так, как сказано выше).

После этого я вышел из программы parted (командой q) и подмонтировал новый раздел к своей системе. Все прошло нормально, я убедился, что раздел монтируется нормально (записывал туда файлы, отключал, монтировал вновь и убеждался, что файлы скопировались не в каталог монтирования, а именно на вновь созданный раздел).

Снова удаляю первый раздел. Раз уж я занялся этой программой, то поиграюсь с ней побольше, и познакомлюсь с ее возможностями поближе! На тестовом-то компьютере я могу себе такие игры позволить!

Снова запускаю программу parted и решаю перенести swap-раздел в начало диска на первичный раздел. Ввожу команду 

(parted) move 5 0 306,000 

Программа выдает предупреждение, что раздел используется, которое я опять игнорирую. После этого она заново запрашивает начало и конец раздела, после чего отказывается выполнить перемещение, сообщая, что не может передвинуть раздел сам в себя. Конечно, этот результат нельзя назвать неожиданным, я и предполагал, что логический раздел переместить в первичный не удастся. Может быть, можно преобразовать тип раздела? Пытаюсь выполнить команду

(parted) set 5

однако предлагаются только варианты boot/hidden/скрытый/raid/lba (это, по-видимому, и есть те флаги, которые могут появляться в последней графе таблицы 1). Приходится жать <Ctrl>+<D>.  Тогда создаю на освободившемся пространстве новый раздел

(parted) mkpartfs swap 0 306,000

(при этом создать swap-раздел не удается, приходится создать ext2). Команда print сообщает, что создан раздел номер 1, начинающийся на 0,031, заканчивающийся на 305,925. Ну ладно, превратить его в swap можно будет потом командой mkswap
[1]. А пока пойдем дальше. Удалять раздел 2 (расширенный) не решаюсь, удаляю ntfs-раздел, после чего пытаюсь передвинуть поближе к разделу 4 раздел 2 (extended). Однако оказывается, что программа не может двигать расширенные разделы.
Хорошо, попытаюсь его удалить, вначале преобразовав новый первый раздел в swap и подключив его к системе.  Выхожу из программы parted (для этого достаточно ввести в командной строке программы букву q) и выполняю команды

[root] mkswap /dev/hda1
[root] swapon /dev/hda1

После этого команда

[root] parted /dev/hda/ print

(обратите внимание на возможность задать команду для программы parted прямо в командной строке консоли) сообщает, что теперь раздел 1 (то есть /dev/hda1) является swap-разделом. После этого удаляю раздел 5 (операция завершается успешно) и раздел 2 (тоже успешно). Осталось у меня 2 раздела: hda1 (swap) и hda4 (ext3). Теперь можно попытаться расширить существующий раздел 4 (обратите внимание - в работающей с этого раздела системе!) 

(parted) resize 4 

На запрос о начале раздела ввожу 3000, конец - 6142,0381. Выдается предупреждение о том, что файловая система не была правильно размонтирована и необходимо выполнить команду e2fsck. Попытка игнорировать это предупреждение к успеху не привела - появилось сообщение что операция не выполнена, потому что файловая система имеет какое-то странное расположение (rather strange layout). Parted can't resize this (yet!).  Я так понимаю, что parted (пока!) не умеет работать с ext3fs.

Такое же сообщение выдается при попытках выполнить команду

(parted) move 4 306 2306

Тогда создаю раздел 2 и пытаюсь скопировать в него существующий  раздел 

(parted) cp 4 2

Тоже отказ! Создать на новом разделе разделе файловую систему ext3 тоже невозможно. Но ведь можно сделать это средствами операционной системы. Выхожу из программы parted, и пытаюсь выполнить команду mkfs -t ext3 /dwv/hda2. Неудачно, получаю сообщение о том, что раздел имеет нулевой размер. Вспоминаю, что при создании раздела было сообщение, что для подключения раздела надо перезапустить систему. Что и делаю. При загрузке появляются сообщения о невозможности подключить swap-раздел /dev/hda5, еще какие-то сообщения об ошибках, но система грузится успешно.  И так же успешно завершается выполнение команды

[root] mkfs -t ext3 /dwv/hda2

Снова запускаю parted и пытаюсь скопировать 4-ый раздел на 2-ой. Результат отрицательный - не умеем работать с ext3fs.

Это что касается прямого опыта использования программы. Теперь несколько слов о том, что мне удалось почерпнуть из документации (я имею в виду man и info). Кратко перечислю, что бросилось в глаза при просмотре этих документов.

  • Программа пока умеет создавать на разделах только файловые системы типа FAT, ext2 и swap (очевидно и работать умеет только с разделами таких типов).
  • Начало и конец создаваемого раздела задаются в мегабайтах. 
  • Флаги, устанавливаемые на раздел, могут принимать значения boot, root, swap, hidden raid, lvm и lba. Состояние раздела (state) может быть либо "on", либо "off".
  • Программа умеет работать под GNU/Linux и GNU/Hurd. Но имеется возможность создать загрузочную дискету, для чего нужно скачать ее образ с сайта ftp://ftp.gnu.org/gnu/parted/bootdisk/partboot.imf, после чего скопировать его на дискету командой
dd if=partboot.img of=/dev/fd0 bs=1440k
Но документация предупреждает, что загрузочный диск поддерживает не очень широкий спектр устройств.

Подведем промежуточный итог. По сравнению с программой Partition Magic (PM) программа parted не производит сильного впечатления. PM умеет работать с разными типами файловых систем (умеет их создавать, перемещать и изменять в размерах), работает в графическом режиме даже при запуске с дискеты, дискеты можно создать прямо с помощью самой программы PM, ну и так далее (все сразу и не вспоминается). Так что, пожалуй, я пока предпочту работать с Partition Magic.

------------

Что такое случилось дальше, я даже как-то не могу понять. Стал я перечитывать то, что написал выше, перепроверять свой текст (как обычно делаю со своими заметками), и, чтоб проверить, что команда parted не запускается от обычного пользователя, переключился во второй виртуальный терминал и попытался запустить там команду parted. Она, естественно, не запустилась. Но после переключения в первый терминал (где я работал от имени суперпользователя) и попытки снова просмотреть разбиение на разделы, чтобы что-то еще сделать, оказалось, что разделов на диске нет вообще. Выдавались только заголовки столбцов, приведенные в первой строке таблице 1. А последующие строки отсутствовали. Команда rescue 4000 6000 работала минут 8, но в результате ничего не восстановила (там же у меня ext3). При попытке перезапустить систему появилось приглашение загрузчика grub и ВСЕ! Систему я грохнул! Я не уверен, что причиной явилась попытка запустить parted в двух терминалах. Восстановить свои действия по шагам (даже в памяти) я уже не могу. Но результат налицо. Меня он не сильно огорчил, поскольку я все равно собирался начать установку системы заново, с целью, в частности, ликвидировать те дефекты в разбиении диска на разделы, о которых сообщали программы parted и PM.

Заодно я хочу пересмотреть свои заметки заново, а точнее переписать их. При этом не буду разбивать их по дням, а разобью на части по темам, примерно таким образом: Инсталляция, Unicode, Настройка сервисов, Офис, Графика, Звук, Мультимедиа, Сеть, Samba, Apache, Parted и так далее. При этом еще раз все перепроверю, дополню и подредактирую.

Ждите новый вариант моих заметок.

Список литературы и ссылки.

  1. В.А.Костромин, "Linux для пользователя", изд. БХВ-Петербург, 2002 год, серия "Самоучитель", 650 стр.

Просмотров: 2044  |  Рейтинг статьи: 3.4 (Голосов: 5).
3.4
Дата размещения статьи: 2003-09-26 16:00:26



5 последних поступлений в раздел Все о дистрибутивах - обзоры и установка:

04.03.04: Наш друг Knoppix ("Я считаю, а ваши письма меня в этом все больше убеждают, что если пользователь хотел запустить к себ...)
26.02.04: FreeBSD, Darwin - с вилами на рабочий стол. (Мои впечатления о двух операционных системах из семейства BSD. "Наверное, все пользователи Linux и не...)
20.02.04: На открытом огне (BLin - это проект по созданию LiveCD-дистрибутива операционной системы GNU/Linux, которая автоматичес...)
05.02.04: Xandros Desktop 2.0 - личный взгляд (Несколько раз мне на глаза попались различные обзоры дистрибутива Linux (правда, коммерческого) под н...)
01.02.04: Frenzy LiveCD. Записки разработчика (Автор дистрибутива рассказывает об идее создания проекта и его функциональных возможностях. Не пустит...)

Комментарии:

Re: Впечатления об установке и настройке Red Hat Linux 9 Cyrillic Edition.День 11-12 (Оценка: 0)
от Anonymous на 13.10.03
В файле smb.conf есть параметры dos charset, unix charset и display charset для самбы >= 3.x.x и display code page, character set для самбы < 3.x.x

Не знаю, какая самба у Вас, но например если 2.x.x
напишите в Global
display code page = 866 #или cp866, не помню
character set = utf-8

И все будет ок.
Это настройки для сервера.

-- Anonymous


LinuxBegin.ru © 2003-2004 Valery V. Kachurov | Условия использования материалов | О проекте