CentOS: ещё одно описание установки VirtualBox )

В виду того, что найденные мной описания установки VirtualBox на CentOS в моём случае не стали исчерпывающими я решил описать свой вариант.

Система CentOS 6.6.

Скачиваю файл описания репозитория VirtualBox:
wget download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo

Перекладываю его в папку /etc/yum.repos.d

Устанавливаю VirtualBox:
yum install VirtualBox-4.3

Однако установка аварийно завершается в процессе скачивания дистрибутива с сообщением о низкой скорости скачивания. Скачиваю его вручную:
wget download.virtualbox.org/virtualbox/rpm/el/6/x86_64/VirtualBox-4.3-4.3.20_96996_el6-1.x86_64.rpm

И устанавливаю:
yum install VirtualBox-4.3-4.3.20_96996_el6-1.x86_64.rpm

При попытке настройки командой "/etc/init.d/vboxdrv setup" получаю ошибку:
Error: unable to find the sources of your current Linux kernel. Specify KERN_DIR=<directory> and run Make again.  Stop.


Смотрю в папке /usr/src/ точное название папки и прописываю переменную окружения:
export KERN_DIR=/usr/src/kernels/2.6.32-504.1.3.el6.x86_64

Запускаю снова "/etc/init.d/vboxdrv setup" и опять неудача — что-то там про то, что невозможно найти файлы заголовков (headers) ядра.

Перезагрузился, в процессе загрузки устанавливались какие-то модули VirtualBox-а.

Снова запускаю "/etc/init.d/vboxdrv setup" и, о чудо, кроме ошибок в процессе удаления старых модулей всё прошло нормально:
Stopping VirtualBox kernel modules                         [  OK  ]
Uninstalling old VirtualBox DKMS kernel modules
Error! There are no instances of module: vboxhost
4.3.20 located in the DKMS tree.
Error! There are no instances of module: vboxhost
4.3.20 located in the DKMS tree.
Error! There are no instances of module: vboxhost
4.3.20 located in the DKMS tree.
Error! There are no instances of module: vboxhost
4.3.20 located in the DKMS tree.
                                                           [  OK  ]
Trying to register the VirtualBox kernel modules using DKMS[  OK  ]
Starting VirtualBox kernel modules                         [  OK  ]


Запускаем его:
VirtualBox

Выбираю операционку Windows XP (32 bit), в качестве CD-привода выбираю виртуальный привод и указываю его на заранее скаченный имидж Windows XP 32-бита.

Пакет расширения

Вроде бы нужен, чтобы работал USB и ещё какие-то штуки:
Description: USB 2.0 Host Controller, Host Webcam, VirtualBox RDP, PXE ROM with E1000 support.

Скачиваем с сайта VirtualBox-а «VirtualBox 4.3.20 Oracle VM VirtualBox Extension Pack».

Устанавливаем его:
VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.3.20-96996.vbox-extpack

Посмотреть список пакетов расширения:
VBoxManage list extpacks

Расшаренные папки

Чтобы папки из хост-системы были видны в гостевой нужно в гостевой системе установить Oracle VM VirtualBox Guest Additions. Для этого в меню этой виртуальной машины надо выбрать пункт — Devices — Insert Guest Additional CD image. Винда в гостевой машине запустит установку программы, а дальше как обычно.

CentOS: управление запуском сервисов

Какие сервисы запускаются на каких уровнях:
chkconfig --list

Какие уровни что означают:

# /etc/inittab
# Default runlevel. The runlevels used are:
# 0 — halt (Do NOT set initdefault to this)
# 1 — Single user mode
# 2 — Multiuser, without NFS (The same as 3, if you do not have
# networking)
# 3 — Full multiuser mode
# 4 — unused
# 5 — X11
# 6 — reboot (Do NOT set initdefault to this)

Примеры:

1. В каких случаях запускать mysqld:
chkconfig --level 23 mysqld on
2. Не запускать апач на уровнях 2 и 3:
chkconfig --level 23 httpd off
3. Не запускать апач вообще:
chkconfig httpd off

CentOS IPv6

Есть интерфейс из ВЛАН-10, на котором уже имеется IPv4-адрес, надо добавить второй адрес, но уже из IPv6-сети. Это можно сделать вот так:
ip addr add 2001:0db8:3:4:0:0:0:3/64 dev eth0.10

Удалить вот так:
ip addr del 2001:0db8:3:4:0:0:0:3/64 dev eth0.10

А чтобы при перезагрузке компьютера этот адрес появился снова добавляем записи для IPv6 в уже существующий файл /etc/sysconfig/network-scripts/ifcfg-eth0.10:
DEVICE=eth0.10
PHYSDEV=eth0
ONBOOT=yes
VID=10
IPADDR=10.1.1.3
NETMASK=255.255.255.0
BOOTPROTO=static
VLAN=yes
USERCTL=no
GATEWAY=10.1.1.1
PEERDNS=yes
DNS1=10.1.1.1
DNS2=10.1.1.2
DOMAIN=elcat.kg
# Добавляем данные для IPv6:
IPV6INIT=yes
IPV6ADDR=2001:0db8:3:4:0:0:0:3/64
IPV6_DEFAULTGW=2001:0db8:3:4:0:0:0:1

Пингуем командой ping6, а путь смотрим командой tracepath6.

Несколько примеров просмотра, удаления и добавления IPv6-маршрутов:
ip -6 route show
ip -6 route show ::/0
ip -6 route show default
ip -6 route delete ::/0
ip -6 route add default via 2001:0db8:3:4:0:0:0:1
ip -6 route add 2001:0db8:33:44::/64 via 2001:0db8:3:4:0:0:0:1
ip -6 route delete 2001:0db8:33:44::/64

К сожалению маршрут до конкретного хоста из подсети, на которую добавлен маршрут, не показывается:
ip -6 route show 2001:0db8:33:44:0:0:0:13
Только для заданной подсети:
ip -6 route show 2001:0db8:33:44::/64

Ну или старый, добрый netstat:
netstat -rn --inet6

Apache: Directory index forbidden by Options directive

Есть у меня куча разной документации и для удобства доступа к ней я поднимаю веб-сервер Apache (httpd) с виртуальным сайтом.
Т.к. по большей части в папках нет индексного файла, я прописываю опцию "+Indexes", чтобы Апач выводил мне список файлов.
Проблем обычно не было, а вот сделал это на машине с CentOS и появилась странная проблема — несмотря на указанную опцию список файлов в корне виртуального сайта не отображался, вместо него выводилась страница из дистрибутива Апача, а в логи записывалась ошибка «Directory index forbidden by Options directive». При этом в подпапках список файлов выводился нормально.
Долго не мог понять в чём проблема, ковыряние в конфигах и эксперименты не помогали.
Пришлось гуглить. Оказалось, что в стандартной установке Апача есть файл /etc/httpd/conf.d/welcome.conf, в котором, собственно, и сказано, что для корня не выводит список файлов, а выводить файл с ошибкой.
Я просто удалил (переименовал) этот файл и перезапустил Апач. Однако при обновлении Апача файл перезаписался и ситуация повторилась, тогда я файл оставил, но закомментировал строки в нём.

Доступ к рабочему столу CentOS с Mac OS X

На работе компьютер под CentOS, а дома под Mac OS X. Иногда бывает нужно подключиться из дома к рабочему компьютеру и доделать или посмотреть что-то в уже открытой сессии иксов.
На рабочем компьютере установил пакет x11vnc. Указал пароль для подключения при помощи команды «x11vnc -storepasswd» и запустил ожидание подключения командой:
x11vnc -nolookup -forever -usepw -display :0 -q &


А в Mac OS X даже устанавливать ничего не пришлось. Подключась через Finder — «Подключение к удалённому рабочему столу» указывая строку «vnc://адрес_рабочего_компьютера» или же из консоли «open vnc://адрес_рабочего_компьютера».
Ну и конечно надо позаботиться о безопасности подключения — прикрыть файрволом порт 5900 на рабочем компьютере, поднять шифрованный туннель.

NTFS в CentOS

Ставим нужные пакеты:
yum install fuse fuse-ntfs-3g

И система автоматически монтирует диск, а можно примонтировать вручную, очевидно как-то так:
mount -t ntfs-3g /dev/sXY /mnt/mydisk

Подключение USB-диска с HFS+ (Mac OS)

По-умолчанию диск не подключается. Диск нормально примонтировался после установки соответствующего модуля из репозитория elrepo:
yum install kmod-hfsplus

Соответствующая часть вывода команды mount:
/dev/sdd10 on /media/A1 type hfsplus (rw,nosuid,nodev,uhelper=hal)
/dev/sdd12 on /media/A2 type hfsplus (rw,nosuid,nodev,uhelper=hal)

Flash-плагин для браузера

Для Firefox:
mkdir ~/.mozilla/plugins

Для Opera:
mkdir ~/.opera/plugins

Качаем с сайта Adobe install_flash_player_11_linux_i386.tar.gz и копируем оттуда файл libflashplayer.so в созданную папку. Перезапускаем браузер.

Добавление:
Opera сама подняла плагин, установленный для Firefox-а, т.к. путь к нему указан в настройках Opera: Preferences — Advanced — Plug-in Options — Plug-in path.
Список путей можно исправить.

Отформатировать флешку под FAT32

Ставим утилиты для поддержки FAT:
yum install dosfstools

Смотрим под каким названием определилась флешка:
tail /var/log/messages

Можно посмотреть какие разделы на диске:
fdisk -l /dev/sdc

Форматировать:
mkfs -t vfat /dev/sdc1

Поменять название диска:
dosfslabel /dev/sdc1 «My USB»

Утилита управления сетевыми настройками ip

Странно как-то в Линуксе организовано управление сетевыми настройками — какие-то дополнительные утилиты, которые делают то, что во ФриБСД делается уже существующими утилитами. В частности утилита ip, которая частично дублирует функции утилит ifconfig, route и ещё бог весть каких. При этом утилитой ifconfig можно назначить айпишник, а удалить уже не получается.

Несколько примеров применения утилиты ip:

ip addr show dev eth1
ip addr add 10.1.1.224/26 dev eth1 (второй адрес добавляется также)
ip addr del 10.1.1.224/26 dev eth1

Добавить IPv6-адрес на интерфейс, можно как второй для уже существующего IPv4-адреса:
ip addr add 2001:0db8::21d:fff:febe:afec/64 dev eth0.10
ip addr del 2001:0db8::21d:fff:febe:afec/64 dev eth0.10

ip link show dev eth1
ip link set up dev eth1
ip link set down dev eth1

Добавить ВЛАН-интерфейс:
ip link add dev eth1.10 link eth1 type vlan id 10
Удалить интерфейс:
ip link del dev eth1.10

ip route show
Показать маршрут по-умолчанию по слову default или маршруту 0.0.0.0 утилита отказалась — показала всю таблицу, надо вот так:
ip route show 0/0
ip -6 route show ::/0

Показать точный маршрут к хосту (если есть маршрут на подсеть, в которую входит указанный хост, то он не учитывается):
ip route show 10.2.2.1
ip route show to exact 10.2.2.1
ip -6 route show 2001:db8::/64

Показать подходящий маршрут к хосту, например, если есть маршрут на соответствующую подсеть:
ip route show to match 10.2.2.1

ip route add 10.2.2.0/24 via 10.1.1.1
ip route add to 10.2.2.0/24 via 10.1.1.1

ip route delete 10.2.2.1
ip route delete 10.2.2.0/24

Удалить маршрут по-умолчанию и добавить его:
ip route delete default
ip route add default via 10.1.1.1