Подписка на блог

делю на ноль, обогащаю уран
Позднее Ctrl + ↑

Как настроить часы

Заметил, что сбивается время после перезагрузки. Чтобы этого не было, подправил файл /etc/conf.d/clock.

Параметров мало. Первый параметр нужно исправить на CLOCK=»local». И параметр CLOCK_SYSTOHC= должен иметь значение «yes».

Если понадобится изменить TIMEZONE=, то доступные часовые пояса можно посмотреть в /usr/share/zoneinfo/.

Время во всех линуксах устаналивается так:

#date ММДДЧЧмм[ПП][ГГ][.СС]

ММ — месяц, ДД — число дня, ЧЧ — часы, мм — минуты, ПП — первые две цифры года, ГГ — вторые цифры года, .СС — секунды. Последние три аргумента необязательные.

Быстро и просто добавить пользователя

# useradd -m -G users,audio,wheel test -p 123456

-m — создать домашний каталог

-G — сделать членом нескольких групп. Группа audio позволит работать с звуковыми платами, группа wheel позволит выполнять команду su.

test — тут любое имя пользователя.

-p 123456 — это пароль.

Обновление системы в Gentoo

Для начала нужно обновить локальное дерево портежей. В дереве имеются ebuild-ы, которые отвечают за правильную сборку пакета. Это аналогично обновлению сорс-листа aptitude update в debian-based системах. Собственно:

# emerge --sync

Теперь обновляется сама система:

# emerge --update --ask world

Параметр —ask выведет сначала на экран список пакетов, которые будут обновлены и спросит, нужно ли обновляться. C —update и world понятно.

Еще можно делать так:

# emerge --update --deep world

Параметр —deep дает указание обновиться полностью, с зависимостями, когда просто —update обновляет пакеты, которые явно установлены мною.

Второй пример стоит делать изредко. Первый — хоть каждый день.

Столкнулся с тем, что emerge уведомил о том, что нужно обновить еще конфигурационные файлы *.conf, которые находятся в /etc:

 * IMPORTANT: 2 config files in '/etc' need updating.
 * See the CONFIGURATION FILES section of the emerge
 * man page to learn how to update config files.

Обновляется с помощью etc-update либо update-etc, что по сути одно и то же, которые покажут примерно такое:

polatov-desktop / # etc-update
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/locale.gen (1)
Please select a file to edit by entering the corresponding number.
              (don't use -3, -5, -7 or -9 if you're unsure what to do)
              (-1 to exit) (-3 to auto merge all remaining files)
                           (-5 to auto-merge AND not use 'mv -i')
                           (-7 to discard all updates)
                           (-9 to discard all updates AND not use 'rm -i'): 

Можно выбирать каждый пакет по его порядковому номеру, просматривать, обновлять, отменять и прочее. А можно набрать -1, чтобы просто выйти. -3 — обновит все автоматически, но будет задавать вопросы про каждый конфиг отдельно, отвечать на вопросы с помощью букв y и n (да и нет соответственно). -5 обновит без вопросов. -7 удалит все, но будет спрашивать, -9 удалит предложенные обновления конфигурационных файлов без вопросов.

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

Конфигурирование nfs-клиента в OpenBSD

Имеется nfs-ресурс, который нужно монтировать. Делается так:

  1. Меняем значение переменной. Здесь указывается количество одновременных потоков ввода-вывода.
    sysctl -w vfs.nfs.iothreads=4
  2. Далее раскомментируем строку vfs.nfs.iothreads=4 в /etc/sysctl.conf. Второй раз это делается для того, чтобы не делать этого вручную как в первый раз, после перезагрузки системы.
  3. В /etc/fstab задал опции монтирования nfs-ресурсов:
    10.100.100.253:/srv/smb/mail /samba/shares/mail nfs ro,auto,dev,async,nouser,suid 0 0

Все. На это настройка закончена. Далее будет описание опций монтирования.

В OpenBSD нет общей опции defaults, как в Linux, в которую входит набор нескольких опций сразу. Поэтому тут я поименно указал опции, которые входят в defaults.

Захотелось разузнать поподробнее об этих опциях ro,auto,dev,async,nouser,suid. Вот что мне удалось узнать/понять:

  • ro — read-only. Понятно, монтирование в режиме «только чтение».
  • auto — разрешает монтироваться по команде mount -a. Проще говоря, автомонтирование.
  • dev — позволяет различать файловые системы символьно-специальных и блочно-специальных устройств. Которые в свою очередь означают:
    • блочно-специальное устройства — устройства с файловой системой, использующие кластер-блок (магнитные диски, флешки и т.п).
    • символьно-специальные устройства — устройства, не использующие кластер-блок (терминал, некоторые виды магнитной ленты и т.п.). На самом деле, это очень сложная тема, о которой, может быть, я почитаю позже.
  • async — все операции ввода/вывода будут выполняться асинхронно. Думаю, это должно облегчать потоки «туда-сюда». Становится легче обмениваться потоками информации.
  • nouser — запрещает обычному пользователю (не-root) монтировать эту файловую систему.
  • suid — разрешает SUID и SGID.

Конечно, опций монтирования очень много, но я остановился только на тех опциях, которые входят в linux-опцию defaults.

Сеть в Gentoo

Сеть у меня настроенна таким образом:

  1. В модеме прописан локальный адрес 192.168.1.1, при маске 255.255.255.0
  2. Также в модеме прописан DNS
  3. Интернет модем получает по DHCP
  4. В настройках интерфейса, модем у меня стоит гейтом (шлюзом)

Теперь вопрос: Почему Ubuntu с DNS работает без проблем, то есть забирает его с модема? Почему этого не может сделать Gentoo? В обоих системах файлы resolv.conf пустые.

Ответ: Потому что в Ubuntu по умолчанию стоит dhcp-клиент (не знаю как он называется), а в Gentoo его нет. Модем работает в двух режимах: по статике — отдает/принимает пакеты, по DHCP раздает DNS.

DHCP-клиент входит в состав минимального установочного диска Gentoo, но в установленную систему не входит. Этим объясняется, почему при установке не обязательно вписывать адреса DNS-серверов в resolv.conf в данном случае.

Сеть настраивается в /etc/conf.d/net. Мой файл выглядит так:

config_eth0=( "192.168.1.4 netmask 255.255.255.0 brd 192.168.1.255")

routes_eth0=( "default gw 192.168.1.1" )

Вообще широковещательный адрес тут не нужен. Но оставлю.

DNS-серверы вписываются в /etc/resolv.conf. У меня выглядит так:

nameserver 82.200.130.232

nameserver 212.19.128.4

Все.

Порядок монтирования и смены корневого каталога из-под существующей системы

Из-под существующей (установленной) системы делается так:

1) Монтируем раздел с Gentoo.

# mount /dev/sda3 /mnt/gentoo/

2) Монтируем каталог /proc, чтобы ядро могло общаться с системой и наоборот.

# mount -t proc none /mnt/gentoo/proc

3) Монтируем каталог /dev, для определения системой устройств.

# mount -o bind /dev /mnt/gentoo/dev

4) Здесь указывается, что при создании переменных сред, нужно игнорировать все, кроме $HOME и $TERM. Вторая часть, начиная с /usr меняет корневой каталог. То есть происходит тот самый chroot

# env -i HOME=$HOME TERM=$TERM /usr/sbin/chroot /mnt/gentoo /bin/bash

5) Создадим новые переменные среды. Без этого система может не найти путь к какому-нибудь бинарнику.

# /usr/sbin/env-update

6) Собственно загрузим только что созданные перменные среды.

# source /etc/profile

7) Можно добавить слово chroot слева от приглашения. Чтобы иметь в виду, что вы находитесь в chroot. Можно, но не обязательно.

# export PS1="(chroot) $PS1"

Выпишу команды без комментариев, чтобы выглядело нагляднее.

# mount /dev/sda3 /mnt/gentoo/
# mount -t proc none /mnt/gentoo/proc
# mount -o bind /dev /mnt/gentoo/dev
# env -i HOME=$HOME TERM=$TERM /usr/sbin/chroot /mnt/gentoo /bin/bash
# /usr/sbin/env-update
# source /etc/profile
# export PS1="(chroot) $PS1"

Параметры grub

Так как я выбрал нестандартный путь установки — установка из-под существующей основной системы Ubuntu, были сложности с правкой menu.lst

На заметку самому себе:

строка типа root (hd0,2) должна указывать тот раздел, где лежит ядро системы, которое я хочу загрузить.

Например так:

title                      Gentoo
root                 (hd0,2)
kernel                   /boot/kernel-2.6.27-gentoo-r7 root=/dev/sda3 ro

smbd, nmbd при старте системы

Поскольку для контроллера домена удобно, чтобы демоны smbd и nmbd при старте-перезагрузке системы поднимались сами, без посторонней помощи. В rc.local пишется такой скрипт:

if [ -x /usr/local/libexec/smbd ]; then
echo -n ' smbd'
/usr/local/libexec/smbd
fi
if [ -x /usr/local/libexec/nmbd ]; then
echo -n ' nmbd'
/usr/local/libexec/nmbd
fi
Ранее Ctrl + ↓