Введение в системное администрирование Unix

Какого типа у нас файловые системы

Показывать лекцию целиком

MOTOROLA: Какого типа у нас файловые системы

fstyp имя_дискового_раздела

Рекомендуемый тип для неспециализированных (т.е. не тех, которые /stand, /boot и некоторые другие) файловых систем стандартный Unix'овский "ufs" - Unix File System. Это быстрая файловая система BSD-подобного типа с символическими линками, длинными именами файлов (до 256 байт), изменяемым размером блока, "размазанной" таблицей inod 'ов (описатели файлов расположены группами, которые равномерно распределены по диску)

mkfs - создает пустую файловую систему.


# создаем файловую систему типа s5 на 4-ом разделе диска, раз-
# мером 200 Мб !!! Размер указывается в 512-байтных блоках

 mkfs -F s5 /dev/rdsk/m328_c2d0s4 400000


# создаем файловую систему типа ufs на 5-ом разделе диска

 mkfs -F ufs -o bsize=4096,nsect=36,ntrack=9,free=1 \
 /dev/rdsk/m328_c2d0s5

Linux: создание файловой системы

mke2fs /dev/hda9

HP-UX: создание файловой системы

newfs -F hfs /dev/rvol12

HP-UX: JFS vs HFS

HP-UX использует два формата файловых систем: HFS (High Perfomance) - AKA старая добрая ufs, и новомодная JFS (Journal) AKA Verytas vxfs

vxfs - это не файловая система, а база данных с журналом транзакций и откаткой. Любая операция записи в файловую систему содержит только завершенные транзакции, поэтому fs на диске всегда находится в корректном состоянии. В лог пишется "протокол намерений", и его можно использовать для откатки.

Плюсы:

  • vxfs использует физический журнал для записи критической метаинформации на диск. Это гарантирует эффективное восстанавление fs. Большая сохранность позволяет дольше кэшировать данные. Очень заметен выигрыш по скорости "close file" - закрытие файла НЕ форсирует sync inod 'а на диск, в отличие от ufs.
  • vxfs применяет кластерную адресацию последовательных блоков - выигрыш в адресации блоков и скорости доступа к большим файлам.
  • inod в vxfs -е имеет длину 256 байт (а не 128), и короткие (<=96байт) директории или симлинки хранятся прямо в inod
  • Директории vxfs проиндексированы - следовательно, повышена скорость поиска файла по имени.
  • По необходимости vxfs умеет создавать дополнительные области inod 'ов, и вообще - место в vxfs распределяется по мере заполнения.
  • Минусы:

  • Служебные структуры vxfs занимают больше места на диске
  • Загрузчик ядра не умеет читать формат vxfs, поэтому каталог /stand обязан быть HFS'ным
  • Плюсы для Live JFS (AKA OnLine VxFS) Only:

    Это расширение стандартной vxfs, коммерческий продукт, поставляемый за отдельные деньги, после его установки стандартная vxfs получает дополнительные возможности:

  • Увеличение размера fs без отмонтирования.
  • Уменьшение размера fs (а-ля speed disk) без отмонтирования.
  • Snapshot (заморозка) fs. По команде возникает параллельное дерево-копия раздела - "остановленное" на момент подачи команды. Реализация: использует дополнительно раздел диска для сохранения изменяемых блоков с данными. При обращении к "замороженным" данным блоки, еще не измененные - считываются из оригинальной файловой системы, если же менялись, то оригинал берется с сохраненной на отдельный раздел копии.
  • Примеры, на которых vxfs дает заметный (в 2-4 раза) выигрыш

    cd /hfs ; time tar xf /tmp/big.tar
     cd /vxfs ; time tar xf /tmp/big.tar
    
     time cat bigfile bigfile bigfile bigfile bigfile > /vxfs/big
     time cat bigfile bigfile bigfile bigfile bigfile > /hfs/big

    Вывод: в некоторых операциях vxfs быстрее, в остальных - не медленнее, устойчивее к выключению питания, но несколько больше съедает дискового пространства.

    HFS имеет смысл на статических "readonly" каталогах, например /usr - скорость чтения одинакова, а hfs компактнее.

    Linux. Запись директории на writable CDROM

    mkisofs -R -o image directory

    затем записать образ на cd-r командой cdrecord

    Монтирование файловых систем

    Чтобы сделать "видимыми" файлы, лежащие на дисковом разделе, Unix использует команду mount. Mount "подцепляет" файловую систему к общему дереву файлов. При монтировании нужно указать "точку монтажа" - каталог, к которому "подцепляется" наша новая файловая система. Например:

    mount -F ufs /dev/dsk/m197_c0d0s8 /home1

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

    df

    Чтобы наши файловые системы монтировались, а swap области активизировались автоматически при каждой загрузке, необходимо вставить соответствующие строки в файл /etc/vfstab. Формат строчек можно посмотреть в этом же файле.

    MOTOROLA: Монтирование CD-ROM

    Если на CDROM'е записана файловая система формата "ufs" - т.е. это "родной", моторольный cdrom, то монтировать его нужно по тем же правилам, что и обычный жесткий диск, только "read only"

    mount -F ufs -r /dev/dsk/m197_c0d6s0 /cdrom

    Если же это обычный "game'овый" диск для MSDOS'а, а точнее, CDROM стандартного формата iso9660, то монтировать его надо так:

    mount -F cdfs -o ro /dev/dsk/m197_c0d6s7 /cdrom

    (использование ключей -r и -o ro - равнозначно)

    Отмонтирование файловых систем

    umount /home1

    Изменение параметров fs

    Sun: tunefs

    Linux: tune2fs

    HP-UX: fsadm

    Bad-блоки

    Симптомы достаточно красноречивы: заметные задержки при доступе к диску (из-за retrying 'a), и на консоль сыплются страшные сообщения "Bad media", "Read failure"... "при доступе к блоку такому-то".

    Запишите номера bad-блоков - их можно "подлечить".

    Фирменные операционки: лечится, но с трудом-с

    Современные SCSI адаптеры сами заменяют bad-блоки. Если засекли бад-блок, пропишите по нему (или файлу с ним) нули, адаптер заодно и пропишет, и подменит, и навсегда спрячет его, и он больше не покажется.

    Motorola: Bad-блоки

    Рекомендую ознакомиться с документацией - раздел "Bad blocks" в Томе "Disks and Tapes Managment"

    см. также man по ddefs, mvme328, scsi1x7, dinit, ...

    Надеюсь при описании геометрии диска командой ddefs вы не поскупились указать число "Bad spots" больше нуля. Замещение бад-блоков выполняется все той же командой dinit

    dinit -n dskdeffilename /dev/rdsk/m187_c0d107
     -n номера bad-блоков вводятся с клавиатуры
    
    dinit -t bad-list dskdeffilename /dev/rdsk/m187_c0d107
     -t bad-list файл со списком bad-блоков

    Как протестировать диск на бад-блоки? У dinit есть ключ

    -v 1 - verify with pattern

    Linux: Bad-блоки

    Linux'овский fsck с ключом "-c" умеет сам находить и лечить от bad-блоков (они собираются в отдельный "bad" inode)

    # -y yes на все вопросы, -f force checking, -c bad-blocks
     e2fsck -c -y -f /dev/hda3

    Диагностика оборудования

    MOTOROLA: Утилита тестирования оборудования GOLD

    Для тестирования и диагностики оборудования станции Motorola 922 можно воспользоваться утилитой gold. Она имеет систему меню, очень похожую на систему меню утилиты sysadm.

    SUN: Утилита тестирования оборудования sundiag

    Sundiag - многофункциональная утилита тестирования оборудования на Sun

    Unix для PC

    Да чего там выпендриваться. Грузитесь в MSDOS и там тестируйте железо всем, чем пожелаете.

    Linux: изменение размеров NTFS-раздела

    скачать и установить с linux-ntfs.sourceforge.org пакет ntfsprogs

    ntfsresize -i /dev/hda9 # посмотреть статус и возможности
    
    # тест возможности обрезать раздел под 15000 Мегабайт
    ntfsresize -n -s 15000M /dev/hda9
    
    umount /dev/hda9
    
    ntfsresize -s 15000M /dev/hda9 # обрезать по настоящему

    Командой fdisk /dev/hda удалить, затем вновь создать партицию /dev/hda9 размером 15000M partition id 7 (NTFS)

    После перезагрузки проверить файловую систему NTFS.

    Linux: опрос состояния IDE-диска

    smartctl -a /dev/hda

    Выделение разделов под swap

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

    Под swap рекомендуется выделять 1*RAM - 2*RAM места, а если на машине активно используется X-Windows, то 3*RAM.

    В случае срочной необходимости под swap можно выделить и обычный файл. Создайте файл большого размера, а затем подключите его под swapping. Пример: выделяем 20 Mb-овый файл

    dd if=/dev/zero of=/var/swapfile bs=1k count=20480

    Чтоб swap подключался автоматически при начальной загрузке, надо вписать строку в /etc/fstab - что-нибудь типа:

    ---------------------------------------------------------------
    # device mountpoint type flags
    /dev/hdb2 none swap sw
    ---------------------------------------------------------------

    MOTOROLA: swap

    После выделения раздела под swap его надо активизировать:

    swap -a /dev/rdsk/m328_c2d0s0 0 0 # подключаем раздел
    
     swap -a /var/swapfile 0 40960 # подключаем файл
     # Внимание - здесь длина указывается в 512-байтных блоках

    Linux: swap

    # размечаем партицию,
    # устанавливаем ей partition ID == 82 "Linux-swap"
    
     fdisk /dev/hda
    
    # Swap-файл для Linux _ОБЯЗАН_ лежать в каталоге /dev/
    
     dd if=/dev/zero of=/dev/swapfile bs=1k count=40000
    
    # После выделения раздела или файла под swap его надо прописать:
    
     mkswap /dev/hda2 40000 ; sync # размер в килобайтах
    
     swapon /dev/hda2 # подключаем swap-раздел
    
     free # смотрим
    
     swapoff /dev/swapfile # отключаем swap-файл

    Для постоянного включения добавить строчку в /etc/fstab:

    ---------------------------------------------------------------
    /dev/hdb2 none swap sw
    ---------------------------------------------------------------

    HP-UX 10.20: swap

    Душка HP-UX позволяет все запросто сделать менюшками SAM.

    Специфика: swap в файловой системе называется экзотическим словом "File system swap", организуется в виде каталога и хватает не все сразу, как имеет место с swap-файлом, а "по требованию", чем экономит место на диске.

    В HP-UX отключить на лету swap -область нельзя - отключение swap форсирует перезагрузку компьютера

    Primary-swap указывается в конфигурации ядра, остальные в файле /etc/fstab

    swapon # подключаем
    
     swapinfo # смотрим

    SUN (Solaris и SunOS)

    swap -l # листинг
     swap -s # листинг
    
     mkfile 40m swap-file # создать свапфайл в 40 Мб
    
     swap -a swap-file # активизировать его.

    Для постоянного включения добавить строчку в /etc/vfstab:

    /swap/file - - swap - no -

    Инсталляция операционной системы

    Для инсталляции операционной системы на Unix-компьютер используются загрузочные дискеты, загрузочные магнитные ленты, а также CD-ROM'ы.

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

    Motorola 922. Загрузка с магнитной ленты

    Вставить ленту с дистрибутивом Unix SVR4/88. Включить питание. После того, как на консольном терминале появится сообщение

    "Idle MPU: none"

    нажать на клавишу "ПРОБЕЛ" Появится меню из нескольких пунктов.

    Выбираем "3" (System debugger), ENTER В ответ на приглашение 197-Diag> вводим "bo 0 40" ENTER (0: загрузить с 0-го SCSI контроллера, 40 - магнитная лента, 4-й scsi-номер) и ждем 5 минут.

    197-Diag> bo 0 40

    Boot-prom организует в оперативной памяти RAM-диск, считывает на него с магнитной ленты начальные 8 Mb - образ файловой системы, загружает ядро операционной системы, монтирует RAM-диск в качестве корневой файловой системы и запускает с него программу инсталляции, управляемую меню. Дальше надо ответить на некоторое количество вопросов, после чего программа приступит к установке пакетов Unix'а, которые размещены на ленте вслед за образом загрузочного RAM-диска. Собственно извлечение файлов с ленты занимает 20-40 минут, в зависимости от того, сколько и какие пакеты вы решили устанавливать.

    Первым вопросом система спросит, какой у вас терминал. Ответьте, что у него 24 строки и он имеет позиционирование курсора в стиле vt100 или unknown

    Программа инсталляции имеет три основных режима:

  • Full install
  • upgrade
  • Maintenance mode
  • Вторым своим вопросом программа инсталляции предложит выбрать один из них.

  • INSTALL - предусматривает полную установку операционной системы. Все файловые системы на диске будут заново переразмечены - и, следовательно, ВСЕ ФАЙЛЫ, которые до этого существовали на диске, БУДУТ СТЕРТЫ.
  • UPGRADE - обновление "старинной" (образца 1988 года и древнее) системы до современной версии. Старые данные при этом не уничтожаются.(За исключением тех, естественно, которые включены в новоустанавливаемые пакеты). Нас этот режим не касается, поскольку у нас и так новая система установлена с самого начала.
  • MAINTENANCE MODE - однопользовательский shell для суперпользователя. Подготовленный администратор сможет, загрузившись с ленты, вручную заняться ремонтом и устранением неисправностей в операционной системе, которые ему не удалось бы отремонтировать, загрузись он с диска. (И вообще, не всегда же удается загрузиться с диска).
  • По выходе из maintenance shell'а (клавиша Ctrl-D) нажмите Ctrl-C, чтоб гарантировать перезапуск инсталляционной процедуры.

    Если вы инсталлитесь на диск неизвестной породы, вам придется перед запуском 1. Install уйти в Maintenance моду и по стандартной схеме сделать описание этого диска.

    Беста-88. Загрузка с магнитной ленты.

    Вставить мастер-ленту Unix'а. Включить питание. На консольном терминале появится сообщение:

    boot:

    Вводим "t:unix" ENTER (Загрузить unix с магнитной ленты)

    boot: t:unix

    RAM-диск у Bestix'а занимает 1000 Кб, вслед за ним расположен архив формата cpio с дистрибутивом операционной системы. Остается ответить на несколько вопросов и затем ждать минут 20, пока все содержимое ленты будет извлечено на диск.

    Sun SPARCstation. Загрузка с CD-ROM

    Вставить CD-ROM. Включить питание. Подождать, пока станция "разогреется". Нажать STOP+A. (STOP - левая верхняя клавиша на левой дополнительной клавиатуре). Появится boot-rom prompt Ok: вводим "boot cdrom". Если SPARC старой модели - SS1, SS1+, SS2, придется вводить "boot sd(0,6,2)"

    Ok boot sd(0,6,2)

    Если приглашение имеет другой вид: "> " (??), то вместо "boot" надо набрать "b"

    > b sd(0,6,2)

    После загрузки Unix запустите команду "suninstall", которая и проведет инсталляцию.

    # suninstall

    Linux Slackware. Загрузка с дискет

    В Linux'е для инсталляции нужно иметь две загрузочные дискеты: BOOT (с нее загружаются, на ней находится ядро), и ROOT (на ней находится минимальная файловая система с программой инсталляции). Образы этих дискет в сжатом виде хранятся в файлах boot*/*.gz и root*/*.gz соответственно. Вам нужно выбрать по одному файлу из каждого множества (например boot12/net.gz и root144/color144.gz) и изготовить из них дискеты. Программа GZIP.EXE -D ИЛИ GUNZIP.EXE "разожмет" эти файлы, а RAWRITE.EXE "зальет" их на дискеты. Сами пакеты с дистрибутивом Linux могут лежать на DOS-партиции инсталлируемой машины, на NFS-сервере, на дискетах, на CD-ROM, на магнитной ленте.

    Загрузитесь с boot-дискеты, в ответ на prompt "Lilo boot:" введите соответствующий параметр и Enter, подождите немного.

    ВНИМАНИЕ: Если ваша машина с Ethernet'ной картой ne2000 "зависает" при попытке загрузить ядро, повторите загрузку с дополнительными параметрами, примерно такими:

    Lilo boot: ether=10,0x320,eth0

    Вставьте ROOT дискету, нажмите Enter. Когда появится "Console login:" залогиньтесь как root и запустите:

    # fdisk /dev/hda
     # setup

    Linux RedHat. Загрузка с дискеты

    В Linux версии RedHat одна загрузочная дискета. Грузимся с нее - а дальше все делаем по менюшкам. Дистрибутив может лежать на локальном диске, NFS, FTP, SMB-сервере.

    HP-UX 10.20. Загрузка с CD-ROM

    Перехватываем начальную загрузку клавишей ESC и из PDC-промта даем команду "нащупать cdrom"

    BOOT-ADMIN> search scsi
    
    ....
     scsi.2.0 ... CDROM ....

    Из выдачи вылавливаем "scsi ID CD" и грузим его

    BOOT-ADMIN> boot scsi.2.0

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

    HP-UX 10.20. Инсталляция по сети

    Готовим сервер

  • Установить с Install диска пакет "Network cold install utils"
  • (Если надо инсталлить C-200 и старше) Установить с Install диска пакет-patch ACE/PHCO-10751 "Enabling network install for ... C-200"
  • В файл /etc/instl_boottab вписать несколько _незанятых_ адресов
  • Подмонтировать Install CD и зарегистрировать его как Depot
    mount /dev/dsk/c0t2d0 /cdrom
     /usr/sbin/swreg -l depot /cdrom
  • Не забыть по окончании работ разрегистрировать Depot
    /usr/sbin/swreg -u -l depot /cdrom
  • На станции: Перехватить PDC-boot промпт (ESC или Break в первые 10 сек)

    PDC> search lan install

    Некоторые станции могут ничего не обнаружить, но все равно - тогда втемную дается команда

    PDC> boot lan.10.188.101.14.3.52 install

    где 10.188.101.14 - IP адрес сервера, а что такое 3.52 - не знает никто

    Вернуться к учебному плану