Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Linux дистрибутив Slackware. Энциклопедия настройки. Установка по сети. Экстрим по-русски. Часть II. NFS.


Информационный Канал Subscribe.Ru

Linux Slackware Энциклопедия от А до Я.


Установка по сети. Экстрим по-русски.
Часть II. NFS.

Это продолжение первой части "Установка по сети. Экстрим по-русски. Часть I. Live-CD.", где было рассказано о создании Live-CD на основе первого диска дистрибутива Slackware 10.0. У кого еще нет этого дистрибутива, могут приобрести недавно вышедший (06.02.2005) релиз версии 10.1, а скачивать лучше с mirror-серверов. Принципиальных различий между этими релизами нет, просто обновление версий входящего ПО до текущих стабильных, однако это уже почти 11я, которая будет основана на ядре 2.6. Поэтому уже в 10.1 можно попробовать 2.6.10 (в 10.0 было 2.6.7). По-умолчанию же будет 2.4.29, которое успело хорошо себя зарекомендовать.

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

Сразу отвечу зачем нужны такие сложности и почему просто не поставить с диска. Все дело в волшебных пузырьках. Если у вас есть локальная сеть и приходится периодически устанавливать linux на новые машины, или обновлять устаревшие пакеты на существующих, то ИМХО, желательно иметь сервер, с синхронизированным с ftp.slackware.com текущим slackware-current. Пускай на сервере происходит синхронизация, скажем раз в месяц. Тогда мы с вами всегда будем иметь самую свежую Шлаку и устанавливать десятку нет никакого смысла.

NFS

Сетевая файловая система - так расшифровывается NFS. Это аналог сетевых дисков Windows, которые с успехом организуются в Linux при помощи Samba. Учитывая, что Windows машин гораздо больше чем Linux-овых можно было бы организовать именно SMB-сервер. NFS выбрана по нескольким причинам. Во-первых, это родная для Linux FS и в отличие от SMB она не корежет права доступа, группы и владельцев. Во-вторых, поддерживается инсталятором Slackware. И в-третьих, проще в настройке и эксплуатации. Никто не мешает нам поставить потом еще и Samba для наших друзей, просто каждая программа имеет свой функционал.

Для начала, создадим на сервере директорию и скопируем туда все файлы и папки со всех имеющихся дисков дистрибутива Slackware. Предположим, что это будет /home/ftp/pub/distr/slackware/slackware-current. Затем делаем синхронизацию с current любым доступным способом (от ручного сравнения с slackware-current на ftp.slackware.com до rsync), хотя этот шаг можно сделать и попозже или не делать вообще если интернет в дефиците или предпочитаете использовать только стабильные релизы. Далее на сервере установим и запустим NFS.

gena@gena:/:$ su
Password: 
root@gena:/:# installpkg \
> /home/ftp/pub/distr/slackware/slackware-current/slackware/n/\                
> nfs-utils-1.0.7-i486-1.tgz
Installing package nfs-utils-1.0.7-i486-1 ([optional])... 
PACKAGE DESCRIPTION:
nfs-utils: nfs-utils (Network File System daemons and utilities)
nfs-utils:
nfs-utils: The nfs-utils package contains the necessary daemons and utilities to
nfs-utils: run an NFS server on Linux.
nfs-utils:
nfs-utils: You'll also need the portmap package to use NFS.
nfs-utils:
Executing install script for nfs-utils-1.0.7-i486-1...

root@gena:/:#

Как видно, нужен еще и portmap. Ставим если еще нет в системе.

Теперь настроим. Для этого правим /etc/exports

root@gena-vmw:~# vi /etc/exports 
reading /etc/exports

wrote /etc/exports, 6 lines, 215 chars
root@gena-vmw:~# cat /etc/exports 
# See exports(5) for a description.
# This file contains a list of all directories exported to other computers.
# It is used by rpc.nfsd and rpc.mountd.

/home/ftp/pub/distr/slackware/slackware-current/        *(ro,sync)

Эта строчка сделает доступной данную директорию для всех в режиме только чтение. За расширенными опциями отправляю вас к man exports.

Теперь запускаем сервер и проверяем.

root@gena-vmw:~# /etc/rc.d/rc.nfsd start
Starting RPC portmapper:  /sbin/rpc.portmap
Starting NFS services:
  /usr/sbin/exportfs -r
  /usr/sbin/rpc.rquotad
  /usr/sbin/rpc.nfsd 8
  /usr/sbin/rpc.mountd
  /usr/sbin/rpc.lockd
  /usr/sbin/rpc.statd
root@gena-vmw:~# 
root@gena-vmw:~# mkdir /mnt/nfs
root@gena-vmw:~# mount -t nfs -o nolock \
> localhost:/home/ftp/pub/distr/slackware/slackware-current/ /mnt/nfs/
root@gena-vmw:~# ls -a /mnt/nfs/
 ./                 COPYING            isolinux/        SPEAK_INSTALL.TXT
 ./                COPYRIGHT.TXT      kernels/         SPEAKUP_DOCS.TXT
bootdisks/         CRYPTO_NOTICE.TXT  PACKAGES.TXT     testing/
BOOTING.TXT        CURRENT.WARNING    rootdisks/       UPGRADE.TXT
ChangeLog.txt      FAQ.TXT            slackware/
CHECKSUMS.md5      FILELIST.TXT       Slackware-HOWTO
CHECKSUMS.md5.asc  GPG-KEY            source/
root@gena-vmw:~# umount /mnt/nfs/
root@gena-vmw:~# ls -a /mnt/nfs/
 ./  ./
root@gena-vmw:~# 

Bugfix

Работает. Теперь займемся делом. Достаем приготовленный накануне диск (читай предыдущую статью) и ... перекладываем его подальше. Сейчас объясню. Дело в том, что когда писалась первая часть, я не мог предположить, что будут проблемы, т.к. проверял работу NFS. Однако, при попытке воспользоваться плодами своего труда была обнаружена маленькая недоработка в установочном скрипте /usr/lib/setup/INSNFS. Этот файл находится внутри образа initrd.img в директории isolinux/ первого диска. В первой части статьи мы распаковывали его в ~/iso/initrd. Как нетрудно догадаться скрипт отвечает за монтирование папки на удаленном NFS-сервере. Может конечно так и задумано, но в результате воспользоваться инсталлятором setup для установки через NFS не получится. Процесс прерывается на этапе выбора пакетов из-за 152 строчки в упомянутом скрипте.

echo "/var/log/mount" > $TMP/SeTDS
Аналогичная строчка в /usr/lib/setup/INSCD выглядит так:
echo "/var/log/mount/slackware" > $TMP/SeTDS
И как известно - работает. Аналогичная ситуация наблюдается и при попытке установить из любой другой подмонтированной папки из-за того, что в соответствующем скрипте также не хватает "/slackware". Причем в новом релизе 10.1 тоже самое. Возможно это сделано из-за того, что структура директорий может быть отличной от принятой на CD. Но в этом случае в setup можно лишь вручную выбирать tagfiles, что очень утомительно. Становятся неработоспособными режимы "full", "menu" и другие. Поэтому предлагаю подправить скрипт на манер INSCD и заново создать iso.img. Вот исправленный вариант INSNFS.

Загружаемся

Вставляем новый диск в новую машину и грузимся. Контроль ведем по пингу с сервера. Как только новая машина начнет откликаться, можно запускать ssh и конектиться. Здесь и далее IP адрес, прописанный на загрузочном CD 192.168.52.100 (slackware), а IP адрес машины, на которой мы запустили NFS-сервер 192.168.52.1 (gena).

gena@gena:~:$ ping 192.168.52.100
PING 192.168.52.100 (192.168.52.100) 56(84) bytes of data.
64 bytes from 192.168.52.100: icmp_seq=29 ttl=64 time=7.00 ms
64 bytes from 192.168.52.100: icmp_seq=30 ttl=64 time=0.330 ms
64 bytes from 192.168.52.100: icmp_seq=31 ttl=64 time=0.344 ms
64 bytes from 192.168.52.100: icmp_seq=32 ttl=64 time=0.139 ms

--- 192.168.52.100 ping statistics ---
32 packets transmitted, 4 received, 87% packet loss, time 31000ms
rtt min/avg/max/mdev = 0.139/1.954/7.003/2.916 ms
gena@gena:~:$ ssh root@192.168.52.100
The authenticity of host '192.168.52.100 (192.168.52.100)' can't be established.
RSA key fingerprint is 2d:fb:c4:4d:10:00:7f:06:fb:4e:db:a2:63:b3:f6:df.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.52.100' (RSA) to the list of known hosts.
root@192.168.52.100's password: 

Linux 2.4.26.

If you're upgrading an existing Slackware system, you might want to
remove old packages before you run 'setup' to install the new ones. If
you don't, your system will still work but there might be some old files
left laying around on your drive.

Just mount your Linux partitions under /mnt and type 'pkgtool'. If you
don't know how to mount your partitions, type 'pkgtool' and it will tell
you how it's done.

To partition your hard drive(s), use 'cfdisk' or 'fdisk'.
To activate PCMCIA/Cardbus devices needed for installation, type 'pcmcia'.
To activate network devices needed for installation, type 'network'.
To start the main installation, type 'setup'.

root@slackware:~1 

И вот мы уже в системе. Начинаем ставить как обычно (читай статью "Загрузка с CD Slackware 10.0. \\ Пошаговая инсталляция."). Для начала разобъем диск с помощью cfdisk.



                              Disk Drive: /dev/hda
                        Size: 1073741824 bytes, 1073 MB
               Heads: 64   Sectors per Track: 63   Cylinders: 520

    Name        Flags      Part Type  FS Type          [Label]        Size (MB)
 ------------------------------------------------------------------------------
    hda1                    Primary   Linux swap                         128.00 
    hda2        Boot        Primary   Linux                              900.08 
    hda3                    Primary   Linux                               45.42 












     [Bootable]  [ Delete ]  [  Help  ]  [Maximize]  [ Print  ]
     [  Quit  ]  [  Type  ]  [ Units  ]  [ Write  ]

Disk has been changed. program without writing partition table
Reboot the system to ensure the partition table is correctly updated.

Setup

Запустив setup и дойдя до пункта 5 (читай упомянутую статью), выбираем не 1, а 3 - Install from NFS. Вводим свой IP 192.168.52.100, маску оставляем 255.255.255.0, шлюз на ваше усмотрение (мой выбор No). Далее вводим IP NFS-сервера 192.168.52.1, затем директорию /home/ftp/pub/distr/slackware/slackware-current.

We'll switch into text mode here so you can see if you have any errors.

Configuring ethernet card...
Running /sbin/rpc.portmap...
Mounting NFS...

Current mount table:
/dev/fd2 on / type ext2 (rw)
proc on /proc type proc (rw)
usbfs on /proc/bus/usb type usbfs (rw)
/dev/hda2 on /mnt type ext3 (rw)
/dev/hda3 on /mnt/tmp type reiserfs (rw)
192.168.52.1:/home/ftp/pub/distr/slackware/slackware-current on 
 /var/log/mount type nfs (ro,nolock,addr=192.168.52.1)

(If you see errors above and the mount table doesn't show your NFS
server, then try setting up NFS again)

Do you need to try setting up NFS again ([y]es, [n]o)? n

Здесь нас спрашивают, видим ли мы в списке нашу папку на удаленном сервере и если нет, то отвечаем "yes" и пытаемся заново примонтировать ее, а если все ок, то "no" и идем дальше. Если вы последовали моему совету и исправили скрипт, то все последующие шаги пройдут как и раньше, поэтому повторяться не буду. Если же нет, то придется помучиться.

Установка в минимальной конфигурации из почти 50 пакетов заняла около 100 Мб. Был выбран тип установки "menu", отмечена серия "A" и выбран только kernel-ide. Для простенького WEB-сервера "A", "AP", "D", "L" и "N".
"A" kernel-ide, infozip
"AP" diffutils, sudo, vim
"D" perl
"L" libtermcap, readline
"N" apache, iptables, links, nmap, openssh, mod_ssl, php, sendmail, wget, tcpip.
Выбор пакетов проводился из соображений обеспечения минимальной функциональности + мои предпочтения. Итого 65 пакетов и 177 Мб дискового пространства. Неплохо?

После инсталляции возможно сообщат, что диск маловат и установка дополнительных пакетов будет проблематична. Пропускаем это мимо ушей, а на предложение конфигурации ответим утвердительно. Выбор ядра пропустим - skip, создание загрузочной дискеты на ваше усмотрение, модем пока не предусмотрен, hotplug включать тоже не стал. Lilo поставил как обычно в режиме expert со стандартной консолью, записью в MBR на /dev/hda, без таймаута. Linux partition /dev/hda2, name=linux, после чего жму Install Lilo. Далее настраиваем сеть. Указываем
имя машины: gena2
домен: .
static IP: 192.168.52.101
netmask: 255.255.255.0
gateway: 192.168.52.1
nameserver:
Далее в меню Startup services отмечаю все. Задаю пароль root.

Вот пожалуй и все. Вынимаем CD и набираем reboot.
Апофеоз:

gena@gena:~:$ ssh root@192.168.52.101
The authenticity of host '192.168.52.101 (192.168.52.101)' can't be established.
RSA key fingerprint is b8:92:ad:8e:6d:c8:20:01:24:23:a6:c4:7b:a3:84:80.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.52.101' (RSA) to the list of known hosts.
root@live-cd's password: 
Last login: Sat Feb 19 20:47:53 2005
Linux 2.4.29.
root@gena2:~# 

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

Продолжение следует...

Жду ваших отзывов на форуме, в разделе "Статьи".


19.02.2005 Gena


http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.linux.slackware
Отписаться

В избранное