Глава 5. Вторая загрузка

Русский перевод: Михаил Сгибнев

Содержание

5.1. dmesg
5.2. Монтируем CD-ROM
5.3. Монтируем флоппи-диск
5.4. Получаем доступ к разделу DOS/Windows
5.5. Добавляем пользователей
5.6. «Теневые» пароли
5.7. Остановка и перезагрузка системы

Во время первой загрузки, вы выполнили базовую конфигурацию системы. В этой главе мы опишем набор общих команд и действий.

5.1. dmesg

При запуске системы ядро печатает длинную последовательность сообщений, эти сообщения информируют состоянии ядра (например, об объеме доступной памяти) и внешних устройствах, обнаруженных в системе. Эта информация необходима при диагностике проблем с аппаратными устройствами или их конфигурацией, а также при определении наименований устройств системы, соответствующих оборудованию (например, возможно, что ваша сетевая карта обнаружена как устройство ne0 или ne1. Обычно при загрузке эти сообщения прокручиваются на экране слишком быстро, чтобы извлечь из них какую-либо пользу, однако команда dmesg(8) позволяет их просмотреть:

# dmesg | more

Если что-то в вашей системе работает не корректно и вы обращаетесь за помощью в один из списков рассылки NetBSD, не забывайте вместе с информацией о возникшей проблеме привести также и сообщения dmesg /var/run/dmesg.out, это поможет другим лучше понять вашу проблему.

5.2. Монтируем CD-ROM

Новички часто бывают удивлены тем, что, несмотря на успешное обнаружение и монтирование CDROM программой установки, установленная система как будто «забыла» как пользоваться CDROM. В использовании CDROM нет особой премудрости — вы можете монтировать его как и любую другую файловую систему, необходимо знать только имя устройства и набор необходимых параметров для команды mount(8). Имя устройства вы можете узнать при помощи уже вышеупомянутой команды dmesg(8). Например, dmesg(8) говорит нам:

# dmesg | grep ^cd
cd0 at atapibus0 drive 1: <ASUS CD-S400/A, , V2.1H> type 5 cdrom removable

Устройство называется cd0 и вы можете примонтировать CD-ROM следующей командой:

# mkdir /cdrom
# mount -t cd9660 -o ro /dev/cd0a /cdrom

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

/dev/cd0a /cdrom cd9660 ro,noauto 0 0

Перезагрузки не потребуется. После этого вы можете примонтировать CD-ROM следующей командой:

# mount /cdrom

Однако стоит помнить, что когда CDROM смонтирован, система не позволяет извлечь его вручную и чтобы это сделать, следует сперва отмонтировать CDROM:

# umount /cdrom

Есть также способ программно отмонтировать и извлечь CDROM:

# eject /dev/cd0a

5.3. Монтируем флоппи-диск

Чтобы монтировать флоппи-диск необходимо знать наименование устройства и тип файловой системы на диске. См. также страницу man fdc(4). Например, флоппи-диск с файловой системой FAT(или FAT32) монтируется следующей командой:

# mount -t msdos /dev/fd0a /mnt

Вместо /mnt можно пользоваться любым другим каталогом на ваше усмотрение. Например, можно создать каталог /floppy и использовать его для монтирования флоппи-диска. Если вы много работаете с флоппи-дисками, вам, возможно, пригодится пакет mtools, с помощью которого можно обращаться к флоппи-дискам или к разделам на жестком диске, форматированными в FAT/FAT32 без необходимости их монтировать. Это достаточно удобно, когда необходимо быстро скопировать файл на флоппи-диск или скопировать с флоппи-диска:

# mcopy foo bar a:
# mcopy a:baz.txt baz
# mcopy a:*.jpg .

5.4. Получаем доступ к разделу DOS/Windows

Если NetBSD установлена совместно с MS-DOS или Windows, можно модифицировать метку диска и, таким образом, сделать разделы DOS/Windows «видимыми» для NetBSD. Для этого сперва необходимо определить геометрию диска, например, с помощью fdisk(8).

# fdisk wd0
NetBSD disklabel disk geometry:
cylinders: 77520, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
...
Partition table:
0: OS/2 HPFS or NTFS or QNX2 or Advanced UNIX (sysid 7)
    bootmenu: WinXP
    start 63, size 20643462 (10080 MB, Cyls 0-1285), Active
1: NetBSD (sysid 169)
    start 20643525, size 57496635 (28075 MB, Cyls 1285-4864)
2: <UNUSED>
3: <UNUSED>

Замечание

В этом примере используется жесткий диск wd0, в вашем конкретном случае, возможно, это будет другой диск.

Результаты работы fdisk показывают, что имеется раздел NTFS («OS/2 HPFS или NTFS или QNX2 или Advanced UNIX (sysid 7)»). Если имеется раздел FAT, то он будет обозначен «Primary ‘big’ DOS, 16-bit FAT (>32MB) (sysid 6)».

Раздел Windows в настоящий момент обозначен только в таблице разделов MBR, но для монтирования его в NetBSD, так же необходимо указать и разметку дисков NetBSD. Есть два пути сделать это: отредактировать метку диска вручную используя команду disklabel -e, или использовать команду mbrlabel(8).

Когда запущена mbrlabel(8) необходимо указать диск, на котором производится поиск разделов, обозначенных в MBR и которые впоследствии добавляются к разметке диска:

# disklabel wd0
...
 d:  78140160         0     unused      0     0        # (Cyl.      0 -  77519)
#
# mbrlabel -rw wd0
Found NTFS partition; size 20643462 (10079 MB), offset 63
  adding NTFS partition to slot e.
Found 4.2BSD partition; size 57496572 (28074 MB), offset 20643588
  skipping existing unused partition at slot c.

16 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 a:  57236256  20643588     4.2BSD   1024  8192 46920  # (Cyl.  20479*-  77261*)
 b:    260316  77879844       swap                     # (Cyl.  77261*-  77519)
 c:  57496572  20643588     unused      0     0        # (Cyl.  20479*-  77519)
 d:  78140160         0     unused      0     0        # (Cyl.      0 -  77519)
 e:  20643462        63       NTFS                     # (Cyl.      0*-  20479*)

Updating in-core and on-disk disk label.
#
# disklabel wd0
...
 d:  78140160         0     unused      0     0        # (Cyl.      0 -  77519)
 e:  20643462        63       NTFS                     # (Cyl.      0*-  20479*)

Если вы не хотите или не можете использовать mbrlabel(8) для решения этой проблемы, то вы можете редактировать метку диска вручную, используя данные команды fdisk. Раздел с файловой системой NTFS начинается с сектора 63 и имеет размер в 20643462 сектора. Раздел NetBSD начинается с сектора 20643525 (20643525 = 20643462 + 63). Вы можете использовать эти данные для модификации метки диска BSD: необходимо просто добавить одну строку с определением позиции и типа NTFS раздела, воспользовавшись для этого идентификатором любого незанятого раздела. Используйте для этого команду disklabel. Для примера:

# disklabel -e wd0
...
#        size   offset     fstype  [fsize bsize  cpg]
...
 d:  78140160         0     unused      0     0        # (Cyl.      0 -  77519)
 e:  20643462        63       NTFS

Разделы с «a» до «d» уже используются, и первым доступным идентификатором будет «e». Поля «size» и «offset» должны быть заполнены значениями, вычесленными ранее. Затем, должна быть создана точка монтирования. Для примера:

# mkdir /c

В заключение, добавим строку в файл /etc/fstab:

/dev/wd0e /c ntfs ro,noauto 1 3

Если вы хотите монтировать раздел MS-DOS «FAT» вместо NTFS, то используйте MSDOS в качестве «fstype» в метке диска и «msdos» в качестве файловой системы (3-я колонка) в /etc/fstab. Вы можете монтировать файловые системы FAT в режиме чтения/записи, то есть использовать «rw» вместо «ro» в /etc/fstab. Для получения более подробной информации обратитесь к страницам руководства mount_msdos(8) and mount_ntfs(8).

Теперь разделы Windows могут быть примонтированы простой командой:

# mount /c

Используя этот метод, вы можете монтировать разделы NFS, FAT и FAT32. Если вы хотите монтировать раздел(ы) автоматически при запуске системы, удалите опцию noauto из файла /etc/fstab.

/dev/wd0e /c ntfs ro 1 3

5.5. Добавляем пользователей

Теперь самое время добавить в систему новых пользователей, так как использовать учетную запись суперпользователя для ежедневной работы небезопасно. В NetBSD для создания пользовательских учетных записей используется утилита useradd(8). Для примера, добавление нового пользователя будет выглядеть так:

# useradd -m joe

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

Для использования утилиты su(1) с целью работы с правами учетной записи пользователя root необходима принадлежность пользователя к группе «wheel». Это можно сделать указанием дополнительной группы при создании учетной записи:

# useradd -m -G wheel joe

В качестве альтернативного варианта может быть использована команда usermod(8) для добавления пользователя в существующую группу:

# usermod -G wheel joe

Замечание

Вы можете редактировать файл /etc/group для присоединения пользователя к какой-либо группе, но не пытайтесь редактировать напрямую файл /etc/passwd! все изменения будут утеряны, смотрите Раздел 5.6, « «Теневые» пароли».

Замечание

Если в системе используется ssh, то по умолчанию доступ пользователя root через этот протокол запрещен. Читайте страницу руководства sshd_config(5) и редактируйте файл конфигурации /etc/ssh/sshd_config, если желаете изменить это.

5.6. «Теневые» пароли

«Теневые» пароли используются в NetBSD по умолчанию. Это означает, что все пароли в /etc/passwd содержат «*», а пароли в зашифрованной форме находятся в файле /etc/master.passwd, который может быть прочитан только пользователем root. Для редактирования файла паролей используется программа vipw(8), которая создает копию /etc/master.passwd. При выходе vipw(8) проверяет корректность копии, создает новый /etc/passwd и устанавливает новый /etc/master.passwd. Далее, vipw(8) запускает pwd_mkdb(8), который создает файлы /etc/pwd.db и /etc/spwd.db, две базы данных, эквивалентных /etc/passwd и /etc/master.passwd, но более быстрых в обработке.

Как можно видеть, пароли управляются NetBSD автоматически. Если вы используете vipw(8) для редактирования файла паролей, вам практически не нужна какая-либо другая специальная процедура администрирования.

Очень важно всегда использовать vipw и другие утилиты администрирования (chfn(1), chsh(1), chpass(1), passwd(1)) и никогда не модифицировать напрямую /etc/master.passwd или /etc/passwd.

5.7. Остановка и перезагрузка системы

Используйте единственную команду shutdown(8) для остановки и/или перезагрузки системы:

# shutdown -h now
# shutdown -r now

Две другие команды для тех же целей:

# halt
# reboot

Команды halt(8), reboot(8) и shutdown(8) не являются синонимами: использование последней будет более верным. В системе с несколькими пользователями вам следует пользоваться shutdown(8), так как вы сможете планировать выключение по расписанию, уведомлять пользователей и т.п. Для получения более подробной информации смотрите страницы руководства shutdown(8), halt(8) and reboot(8).