Ошибки с vzquota и vzreboot в Debian 6 (OpenVZ)

При попытке что-то установить в Debian Squeeze в OpenVZ вываливаются ошибки:

insserv: warning: script 'S10vzquota' missing LSB tags and overrides
insserv: warning: script is corrupt or invalid: /etc/init.d/rc6.d/S00vzreboot
insserv: warning: script 'vzquota' missing LSB tags and overrides
insserv: There is a loop between service vzquota and single if started
insserv: loop involving service single at depth 11
insserv: loop involving service vzquota at depth 10
insserv: loop involving service mountnfs at depth 8
insserv: There is a loop between service vzquota and single if started
insserv: loop involving service sysklogd at depth 14
insserv: Starting vzquota depends on single and therefore on system facility `$all' which can not be true!
......
insserv: Max recursions depth 99 reached
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header
dpkg: error processing package (--configure):
subprocess installed post-installation script returned error exit status 1
configured to not write apport reports
Errors were encountered while processing:
puppet
E: Sub-process /usr/bin/dpkg returned an error code (1)

Решение:

mv /etc/rc6.d/S00vzreboot /etc/init.d/vzreboot — перемещаем скрипт
ln -s /etc/init.d/vzreboot /etc/rc6.d/S00vzreboot — делаем на него симлинк

В файле /etc/init.d/vzquota добавляем под строкой «#!/bin/sh» следующее:

### BEGIN INIT INFO
# Provides: vzquota
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start vzquota at the end of boot
# Description: This command is used to configure and see disk quota statistics for Containers.
### END INIT INFO

Восстановление доверительных отношений в домене

Бывает такая ситуация, что компьютер не может пройти проверку подлинности в домене. Вот несколько примеров:

  • После переустановки ОС на рабочей станции машина не может пройти проверку подлинности даже с использованием того же имени компьютера. Поскольку в процессе новой установки ОС генерируется SID-идентификатор и компьютер не знает пароль учетной записи объекта компьютера в домене, он не принадлежит к домену и не может пройти проверку подлинности в  домене.
  • Компьютер полностью восстановлен из резервной копии и не может пройти проверку подлинности. Возможно, после архивации объект компьютера изменил свой пароль в домене. Компьютеры изменяют свои пароли каждые 30 дней, а структура Active Directory помнит текущий и предыдущий пароль. Если была восстановлена резервная копия компьютера с давно устаревшим паролем, компьютер не сможет пройти проверку подлинности.
  • Секрет LSA компьютера давно не синхронизировался с паролем, известным домену. Т.е. компьютер не забыл пароль — просто этот пароль не соответствует реальному паролю в домене. В таком случае компьютер не может пройти проверку подлинности и безопасный канал не будет создан.

Основные признаки возможных неполадок учетной записи компьютера:

  • Сообщения при входе в домен указывают, что компьютеру не удалось установить связь с контроллером домена, отсутствует учетная запись компьютера, введен неправильный пароль учетной записи компьютера или потеряно доверие (безопасная связь) между компьютером и доменом.
  • Сообщения или события в журнале событий, указывающие аналогичные ошибки или предполагающие неполадки паролей, доверительных отношений, безопасных каналов  либо связи с доменом или контроллером домена. Одна из таких ошибок — отказ проверки подлинности с кодом ошибки 3210 в журнале событий компьютера.
  • Учетная запись компьютера в Active Directory отсутствует.

Как лечить?

Необходимо переустановить учетную запись компьютера. В сети есть рекомендации по такой переустановки: удалить компьютер из домена, чтобы потом повторно присоединить его. Да, это работает, но данный вариант не рекомендуется делать по причине того, что теряется SID-идентификатор и членство компьютера в рабочей группе.

Поэтому необходимо сделать так:

Открыть оснастку Active Directory, выбрать «Пользователи и компьютеры», щелкнуть объект компьютера правой кнопкой мыши и применить команду «Переустановить учетную запись». После этого компьютер следует заново присоединить к домену и перезагрузиться.

Чтобы перезагрузка после сброса безопасного канала не требовалось, нужно использовать либо команду Netdom, либо Nltest.

C помощью учетной записи, относящейся к локальной группе «Администраторы»:

netdom reset Имя_машины /domain Имя_домена /Usero Имя_пользователя /Passwordo {Пароль | *}

На компьютере, где утрачены доверительные отношения:

nltest /server:Имя_сервера /sc_reset:ДОМЕН\Контроллер_домена

Включаем Ubuntu в состав домена Windows

Встала задача подключить ноутбук с ОС Ubuntu к домену Windows. Если в ОС Windows это сделать проще простого, то в линуксе нужно проделать небольшие манипуляции.

И так, для примера привожу нужную для дальнейшего мануала информацию:

  • Компьютер-сервер с ОС Windows Server 2008 R2:
    • Имя: Server2008R2
    • Домен: myserver.com
    • Роль: контроллер домена ActiveDirectory, DNS-сервер
    • IP-адрес: 172.17.1.3
    • Маска сети: 255.255.255.0
    • Шлюз: 172.17.1.1
  • Виртуальная машина с ОС Windows Server 2008 R2:
    • Имя: FileServer
    • Домен: myserver.com
    • Роль: вторичный контроллер домена ActiveDirectory с настроенной реплекацией
    • IP-адрес: 172.17.1.6
    • Маска сети: 255.255.255.0
    • Шлюз: 172.17.1.1
  • Ноутбук с ОС Ubuntu 11.04:
    • Имя: LaptopUbuntu
    • Сетевые настройки: через DHCP (получает от роутера с IP-адресом 172.17.1.1)

Т.к. нашей задачей является подключить ноутбук к домену mydomain.com, то необходимо проделать следующие действия:

sudo apt-get install krb5-user ntp samba winbind

krb5-user — пакет для протокола Kerberos, который используется для аутентификации в Windows;
ntp — позволяет синхронизировать время в контроллером домена;
samba — позволяет стать членом домена;
winbind — позволяет использовать учетную запись пользователя из ActiveDirectory.

Теперь перейдем непосредственно к настройкам:

sudo gedit /etc/resolv.conf

Изменить содержимое на следующее:

domain myserver.com
search myserver.com
nameserver 172.17.1.3

Задаем нужное имя ноутбука (LaptopUbuntu) в следующем файле:

sudo gedit /etc/hostname

Далее открываем:

sudo gedit /etc/hostname

Меняем так, чтобы было (секцию IPv6 не трогаем):

127.0.0.1 localhost
172.17.1.2 LaptopUbuntu.myserver.com LaptopUbuntu

Теперь для применения изменений необходимо перезагрузить ноутбук. После перезагрузки у меня, почему-то, все отредактированные выше файлы сбросились в первоначальное содержимое. Немного подумав, я понял, что виноват тому значащийся в сетевых настройках включенный DHCP. Через Network Manager я отключил DHCP, выбрал пункт «ручная настройка», а затем опять проделал то, что написано выше. Хотя, часть значений параметров можно вписать через все тот же  Network Manager.

Открываем следующий файл:

sudo gedit /etc/ntp.conf

и вписываем в него следующее:

server Server2008R2.myserver.com

Командой

sudo /etc/init.d/ntp restart

перезапускам демон.

Далее приступим к настройке Kerberos. Редактируем файл:

sudo gedit /etc/krb5.conf

Заполняем его следующей информацией:

[libdefaults]
default_realm = MYSERVER.COM
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true

[realms]
MYSERVER.COM = {
kdc = SERVER2008R2
kdc = FILESERVER
admin_server = SERVER2008R2
default_domain = MYSERVER.COM
}

[domain_realm]
.domain.com = MYSERVER.COM
domain.com = MYSERVER.COM
[login]
krb4_convert = false
krb4_get_tickets = false

Теперь настраиваем Samba:

sudo gedit /etc/samba/smb.conf

Приводим секцию [global] к следующему содержанию:

workgroup = MYSERVER.COM
realm = MYSERVER.COM
security = ADS
encrypt passwords = true
dns proxy = no
socket options = TCP_NODELAY
domain master = no
local master = no
preferred master = no
os level = 0
domain logons = no
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

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

Теперь перейдем к настройке Winbind, если мы хотим использовать учетные записи из ActiveDirectory у себя на ноутбуке.

Опять редактируем файл:

sudo gedit /etc/samba/smb.conf

И в секцию [global] добавляем:

idmap uid = 10000 - 40000
idmap gid = 10000 - 40000
winbind enum groups = yes
winbind enum users = yes
winbind use default domain = yes
template shell = /bin/bash
winbind refresh tickets = yes
winbind offline logon = yes
winbind cache time = 1440

После чего необходимо перезапустить демоны:

sudo /etc/init.d/winbind stop
sudo smbd restart
sudo /etc/init.d/winbind start

Далее идем и редактируем следующий файл:

sudo gedit /etc/nsswitch.conf

Добавляем в конец строк passwd и group слово winbind, т.е. файл должнен выглядеть так:

passwd: compat winbind
group: compat winbind

И самое последнее: в файл /etc/pam.d/common-session добавить следующую строчку:

session  optional  pam_mkhomedir.so skel=/etc/skel/ umask=0077

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

Список команд MySQL

Ниже приводится небольшой список полезных команд для управления БД MySQL через командную строку.

Установка нового пароля для пользователя root:

mysqladmin -u root password 'NEW-PASSWORD'
mysqladmin -u root -h 'HOSTNAME' password 'NEW-PASSWORD'

Создание новой БД:

mysqladmin -u USER -pPASSWORD create NEWDATABASE

Удаление существующей БД:

mysqladmin -u USER -pPASSWORD drop DATABASE

Просмотр списка заведенных БД:

mysqlshow -u USER -pPASSWORD

Просмотр списка таблиц БД:

mysqlshow -u USER -pPASSWORD DATABASE

Создание резервной копии БД:

mysqldump -u USER -pPASSWORD DATABASE > /directory/dump.sql

Создание резервной копии БД (с указанием даты создания):

mysqldump -u USER -pPASSWORD DATABASE | gzip > 'date +/directory/dump.sql.%Y%m%d.%H%M%S.gz'

Создание архивированной резервной копии БД:

mysqldump -u USER -pPASSWORD DATABASE | gzip > /directory/dump.sql.gz

Создание резервной копии определенной таблицы БД:

mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 > /directory/dump_tables.sql

Восстановление резервной копии БД:

mysql -u USER -pPASSWORD DATABASE < /directory/dump.sql

Восстановление архивированной резервной копии БД:

gunzip < /directory/dump.sql.gz | mysql -u USER -pPASSWORD DATABASE

Восстановление и оптимизация таблиц БД:

mysqlcheck -Aor -pPASSWORD

MyTOP — мониторинг MySQL

Для мониторинга сервера MySQL есть неплохая программа, которая называется MyTOP. Находится в репозиториях Debian, поэтому для установки достаточно выполнить команду:

apt-get install mytop

Теперь можно начать процесс мониторинга за сервером MySQL. Для этого нужно к нему подключиться, скомандовав:

mytop -u user -p password -d base_data

Вместо выделенных аргументов нужно подставлять соответственно имя пользователя БД, пароль и имя самой БД. Если используем глобального пользователя root, то указывать имя БД необязательно, т.к. для мониторинга все равно будут выведены все созданные БД.

Как и у команды top, в mytop в верхней части экрана консоли выводится полезная информация:

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

Далее следует таблица с информацией об активных потоках.

Вывод команды mytop

Как стать системным администратором

Интересная запись на Хабрахабре с заголовком «Как стать системным администратором — пособие для начинающих (часть 1)». Как будут другие части, выложу ссылки в этой заметке.

UPD: вторая часть + третья часть + четвертая часть.

Восемь видео-лекций от Яндекса в рамках КИТ

В разделе «Обучение» компания Яндекс выложила восемь интересных видео-лекций, которые проводились в рамках КИТ (курсы информационных технологий):

  • операционные системы (115 минут)
  • архитектура ЭВМ (99 минут)
  • устройство GNU/Linux (109 минут)
  • системы хранения данных (120 минут)
  • файловые системы (103 минуты)
  • сети и протоколы (108 минут)
  • виртуализация  (118 минут)
  • безопасность (116 минут)

Статьи по виртуализации на основе Hyper-V

На сайте Microsoft Technet появились статьи по виртуализации на основе технологии Hyper-V.  Все статьи собраны в 4 главы:

  • Преимущества виртуализации
  • Виртуализация серверов
  • Виртуализация локальных настольных компьютеров
  • Виртуализация удаленных рабочих столов

Поднял сервер на Windows Server 2008 R2

Развернул на своем стационарном компьютере ОС Windows Server 2008 Standard R2. До этого я ставил Windows Server на виртуальную машину (VirtualBox), но из-за небольшого объема оперативной памяти в моем компьютере (всего 2 ГБ), ОС на виртуальной машине тормозила. В связи с этим я решил установить Windows Server на другой раздел жесткого диска, тем самым у меня теперь при загрузки компьютера есть выбор между Windows 7 и Windows Server 2008 R2.

После того, как установилась Windows Server 2008 R2, я сразу же загрузил все обновления, включая SP1. Затем добавил необходимые роли для сервера: IIS, файловый сервер, Active Directory. При первичной настройки Active Directory устанавливается и роль DNS-сервера. В общем, я сделал так, что, во-первых, у меня работает локальный сайт, доступ к которому я имею непосредственно через IP-адрес сервера с других моих устройств (телефон, ноутбук, iPad), а во-вторых, присоединил свой ноутбук к созданному домену, и создал учетную запись пользователя в Active Directory для ноутбука. Теперь, на ноутбуке можно авторизироваться через учетную запись, занесенную в Active Directory на сервере. Ну и, конечно же, в третьих, я сделал так, что ноутбук отсылает DNS-запросы непосредственно к моему серверу, когда пытается открыть веб-страницы. Естественно, все перестает работать, когда сервер переходит в состояние ВЫКЛ.

Теперь я хочу присвоить локальному сайту имя, чтобы перестать открывать сайт по IP-адресу. Это совсем не сложно.

P.S.: Windows Server 2008 R2 у меня лицензионная, получил лицензионный ключ по программе DreamSpark от Microsoft, за что им большое спасибо! =)

Запрет на некоторые имена папок в Windows

Если честно, только с наводки знакомого узнал, что в ОС Windows нельзя создавать папки с именами следующего вида:

  • con
  • aux
  • nul
  • prn

При попытке создать папки с такими именами, появится ошибка с надписью «Указано неверное имя устройства».

Поиск в сети выдал ответ:

С DOS’овских времен остался пережиток прошлого – запрет на имена папок PRN, AUX, NUL, COM1, COM2 и CON. Таким образом когда-то можно были обратиться непосредственно к устройству.