<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https://wiki.welard.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.51.51&amp;*</id>
	<title>Wiki Welard - Внесок користувача [uk]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.welard.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=192.168.51.51&amp;*"/>
	<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=%D0%A1%D0%BF%D0%B5%D1%86%D1%96%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0:%D0%92%D0%BD%D0%B5%D1%81%D0%BE%D0%BA/192.168.51.51"/>
	<updated>2026-10-27T23:41:03Z</updated>
	<subtitle>Внесок користувача</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Fstab&amp;diff=2089</id>
		<title>Fstab</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Fstab&amp;diff=2089"/>
		<updated>2011-12-08T21:27:59Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Монтирование разделов по меткам в fstab (fstab mount linux label) ==&lt;br /&gt;
 &lt;br /&gt;
Оригинал: http://ru.gentoo-wiki.com/wiki/Fstab&lt;br /&gt;
[http://planetsecurity.org.ua/notes/sintaksis-fayla-fstab.html Синтаксис файла fstab] &lt;br /&gt;
&lt;br /&gt;
Введение&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
   /etc/fstab  Конфигурационный  файл  с  указанием  партиции  и ее точки&lt;br /&gt;
   монтирования в структуре файловой системы.&lt;br /&gt;
&lt;br /&gt;
   Классическая  схема конфигурации на основе шины описана в статье О&lt;br /&gt;
   монтировании файловых систем&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Уникальные идентификаторы&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Уникальная идентификация партиции и точное указание точки монтирования&lt;br /&gt;
   стало  возможным  при наличии udev и имеет некоторое превосходство над&lt;br /&gt;
   обозначением по положению на шине ide/scsi.&lt;br /&gt;
&lt;br /&gt;
   Развитие  Linux  и  udev  увеличивает  надежность  опознания различных&lt;br /&gt;
   устройств, но в тоже время появляются новые проблемы.&lt;br /&gt;
&lt;br /&gt;
    1. Если  у  вас  больше  одного  sata/scsi или ide контроллера, то их&lt;br /&gt;
       обозначение  при  загрузке  будет  случайным.  В  результате после&lt;br /&gt;
       перезагрузки диск sdX может выглядеть как sdY или для ide дисков -&lt;br /&gt;
       hdX  и  hdY.  Уникальная идентификация позволяет забыть о подобных&lt;br /&gt;
       мелочах.&lt;br /&gt;
    2. Введение новой libata pata поддержки, все ваши ide hdX диски будут&lt;br /&gt;
       видны  как  sdX  устройства.  Уникальная  идентификация  дисков  и&lt;br /&gt;
       партиций позволит вам безболезненный переход.&lt;br /&gt;
    3. В  компьютерах с наличием sata и ide контроллеров переход от hdX к&lt;br /&gt;
       sdX   может   внести   путаницу,   которую   можно   избежать  при&lt;br /&gt;
       использовании идентификаторов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Четыре схемы уникальной идентификации&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по UUID&lt;br /&gt;
&lt;br /&gt;
   UUID  это сокращение от слов Universally Unique IDentifier и описывает&lt;br /&gt;
   механизм  выдачи  каждой  файловой системе уникального идентификатора.&lt;br /&gt;
   Все файловые системы в линуксе, включая swap, поддерживают UUID. FAT и&lt;br /&gt;
   NTFS  не поддерживают UUID изначально, и тем не менее в линуксе им так&lt;br /&gt;
   же назначается UUID.&lt;br /&gt;
&lt;br /&gt;
        ls -al /dev/disk/by-uuid/&lt;br /&gt;
        total 0&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 2f6e40d0-83b5-42dc-a102-b95bc32073dc&lt;br /&gt;
         -&amp;gt; ../../sda1&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 84e7c2c9-f26e-4e3f-98b8-93eec152cd5a&lt;br /&gt;
         -&amp;gt; ../../hdc5&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 867a5afb-f266-4a85-900f-efcc86004370&lt;br /&gt;
         -&amp;gt; ../../sda3&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 9542be4e-fe40-4ca9-9522-f5222d32ac84&lt;br /&gt;
         -&amp;gt; ../../sdb1&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 b15f438d-b4b7-4536-a8cc-46128f440c7c&lt;br /&gt;
         -&amp;gt; ../../hdc6&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 AF92-3DDB -&amp;gt; ../../sdd1&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 B0JC190ODC193954 -&amp;gt; ../../sdd6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Как вы видите, FAT и NTFS разделы имеют укороченный идентификатор.&lt;br /&gt;
&lt;br /&gt;
   Для определения UUID так же можно воспользоватся командой&lt;br /&gt;
   &lt;br /&gt;
           tune2fs -l /dev/sda1 | grep UUID&lt;br /&gt;
   &lt;br /&gt;
           Filesystem UUID: 2f6e40d0-83b5-42dc-a102-b95bc32073dc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     * Преимущества  использования  UUID: уникальность каждого раздела по&lt;br /&gt;
       идентификатору позволяет избежать ошибок при монтировании.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     * Недостаток использования UUID: трудно запомнить ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по LABEL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Практически  любой файловой системе или партиции можно присвоить LABEL&lt;br /&gt;
   (метку)&lt;br /&gt;
&lt;br /&gt;
           ls -l /dev/disk/by-label/&lt;br /&gt;
           total 0&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 250gig -&amp;gt; ../../sdb1&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 b00t -&amp;gt; ../../sda1&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 level0 -&amp;gt; ../../sda3&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 p2p -&amp;gt; ../../hdc6&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 swap -&amp;gt; ../../hdc5&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 fat -&amp;gt; ../../sdd1&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 ntfs -&amp;gt; ../../sdd6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Посмотреть названия так же можно командой cfdisk /dev/sda&lt;br /&gt;
&lt;br /&gt;
   Для  изменения  label для каждой файловой системы выполните подходящие&lt;br /&gt;
   команды:&lt;br /&gt;
swap: Создание новой swap партиции:&lt;br /&gt;
               mkswap -L &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ext2/ext3:&lt;br /&gt;
               e2label /dev/XXX &amp;lt;label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reiserfs:&lt;br /&gt;
               reiserfstune -l &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
jfs:&lt;br /&gt;
               jfs_tune -L &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xfs:&lt;br /&gt;
               xfs_admin -L &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fat/vfat: Изменить метку диска в Windows, или при создании раздела в линуксе&lt;br /&gt;
&lt;br /&gt;
               mkdosfs -n &amp;lt;label&amp;gt; &amp;lt;other options&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
назначение метки диску &lt;br /&gt;
               tune2fs -L HOME /dev/sda1 &lt;br /&gt;
&lt;br /&gt;
ntfs: Изменить метку диска в Windows или&lt;br /&gt;
&lt;br /&gt;
               ntfslabel /dev/XXX &amp;lt;label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Предупреждение: Будте внимательны при обозначении партиций. LABEL&lt;br /&gt;
   должен быть уникальным для каждого диска.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по id&lt;br /&gt;
&lt;br /&gt;
   В  данном  случае  id образуется из производственного серийного номера&lt;br /&gt;
   вашего диска.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по path&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Создание  имени  по  кратчайшему  пути (path) в соответствии с sysfs и&lt;br /&gt;
   содежит  информацию  о шине на которой расположен жесткий диск. Что не&lt;br /&gt;
   подходит  для  наших  целей  и решения вышеобозначенных проблем. Более&lt;br /&gt;
   подробно в статье О монтировании файловых систем&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Использование уникальных идентификаторов&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Я   надеюсь   вы   уже   определились   какой  метод  вам  понравился.&lt;br /&gt;
   Использование данных методов достаточно просто.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fstab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   В  /etc/fstab  замените  обозначение  диска  в  первой  колонке на ваш&lt;br /&gt;
   идентификатор  к  примеру,  я закомментировал обозначение дисков по id&lt;br /&gt;
   знаком   #   и   записал   обозначение   двух   партиций   по   разным&lt;br /&gt;
   идентификационным схемам.&lt;br /&gt;
&lt;br /&gt;
        /etc/fstab&lt;br /&gt;
        #/dev/sda1   /boot           ext2            noauto,noatime           1 2&lt;br /&gt;
        LABEL=b00t   /boot           ext2            noauto,noatime           1 2&lt;br /&gt;
        #/dev/hdc5   none            swap            sw                       0 0&lt;br /&gt;
        UUID=84e7c2c9-f26e-4e3f-98b8-93eec152cd5a    none            swap sw  0 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Так же можно заменить /dev/sda1 на /dev/disk/by-label/b00t или&lt;br /&gt;
   /dev/disk/by-uuid/2f6e40d0-83b5-42dc-a102-b95bc32073dc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
grub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Предупреждение: Данное описание -- для Arch Linux. В Gentoo надо&lt;br /&gt;
   использовать genkernel и работает только указание корня через LABEL=&lt;br /&gt;
   (на данный момент)&lt;br /&gt;
&lt;br /&gt;
   Для использования уникальных идентификаторов при загрузке необходимо:&lt;br /&gt;
    1. Использовать mkinitcpio initramfs образ&lt;br /&gt;
    2. Разрешить использование udev в /etc/mkinitcpio.conf&lt;br /&gt;
    3. Пересоздать initramfs образ до перезагрузки компьютера.&lt;br /&gt;
&lt;br /&gt;
   Примечание: В версиях klibc-udev до 101-3 уникальное обозначение&lt;br /&gt;
   устройств не работает&lt;br /&gt;
&lt;br /&gt;
   В  приведенном  выше  примере партиция /dev/sda3 LABEL=level0 является&lt;br /&gt;
   root партицией и в файле /boot/grub/menu.lst запись&lt;br /&gt;
   &lt;br /&gt;
   /boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
           kernel /boot/vmlinuz26 root=/dev/sda3 vga=0x318 ro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   надо поменять на&lt;br /&gt;
   /boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
           kernel /boot/vmlinuz root=/dev/disk/by-label/level0 vga=0x318 ro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   или&lt;br /&gt;
   /boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
           kernel /boot/vmlinuz root=LABEL=level0 vga=0x318 ro&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mtu&amp;diff=2080</id>
		<title>Mtu</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mtu&amp;diff=2080"/>
		<updated>2011-10-11T22:09:41Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. PPTP&lt;br /&gt;
&lt;br /&gt;
PPTP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; GRE -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовок GRE -4 байта, заголовок PPP -2 байта.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1500-20-4-2=1474; MSS=MTU-40=1434&lt;br /&gt;
&lt;br /&gt;
2. Незашифрованный L2TP поверх IP&lt;br /&gt;
&lt;br /&gt;
L2TP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовки UDP -8 байт, заголовки L2TP -16 байт, заголовок PPP -2 байта.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1500-20-8-16-2=1454; MSS=MTU-40=1414&lt;br /&gt;
&lt;br /&gt;
3. L2TP поверх IPSEC&lt;br /&gt;
&lt;br /&gt;
L2TP поверх IPSEC это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; ESP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Получается то же самое, что и пункт 2, за вычетом размера заголовков ESP -20 байт.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1454-20=1434; MSS=MTU-40=1394&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. L2TP поверх IPSEC с NAT-Traversal&lt;br /&gt;
Это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; ESP -&amp;gt; IP -&amp;gt; UDP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
&lt;br /&gt;
Получается то же самое, что и пункт 3, за вычетом размера заголовков UDP -8 байт и IP -20 байт.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1434-28=1406; MSS=MTU-40=1366&lt;br /&gt;
&lt;br /&gt;
[http://www.wandin.net/dotclear/index.php?post/2009/01/08/OpenVPN-MTU-Size OpenVPN-MTU-Size]&lt;br /&gt;
&lt;br /&gt;
[http://forum.ixbt.com/topic.cgi?id=14:49725 ixbt]&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mtu&amp;diff=2079</id>
		<title>Mtu</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mtu&amp;diff=2079"/>
		<updated>2011-10-11T22:07:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. PPTP&lt;br /&gt;
&lt;br /&gt;
PPTP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; GRE -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовок GRE -4 байта, заголовок PPP -2 байта.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1500-20-4-2=1474; MSS=MTU-40=1434&lt;br /&gt;
&lt;br /&gt;
2. Незашифрованный L2TP поверх IP&lt;br /&gt;
&lt;br /&gt;
L2TP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовки UDP -8 байт, заголовки L2TP -16 байт, заголовок PPP -2 байта.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1500-20-8-16-2=1454; MSS=MTU-40=1414&lt;br /&gt;
&lt;br /&gt;
3. L2TP поверх IPSEC&lt;br /&gt;
&lt;br /&gt;
L2TP поверх IPSEC это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; ESP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Получается то же самое, что и пункт 2, за вычетом размера заголовков ESP -20 байт.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1454-20=1434; MSS=MTU-40=1394&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. L2TP поверх IPSEC с NAT-Traversal&lt;br /&gt;
Это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; ESP -&amp;gt; IP -&amp;gt; UDP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
&lt;br /&gt;
Получается то же самое, что и пункт 3, за вычетом размера заголовков UDP -8 байт и IP -20 байт.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1434-28=1406; MSS=MTU-40=1366&lt;br /&gt;
&lt;br /&gt;
[http://www.wandin.net/dotclear/index.php?post/2009/01/08/OpenVPN-MTU-Size OpenVPN-MTU-Size]&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mtu&amp;diff=2078</id>
		<title>Mtu</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mtu&amp;diff=2078"/>
		<updated>2011-10-10T20:48:55Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: Created page with &amp;quot;1. PPTP  PPTP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; GRE -&amp;gt; IP -&amp;gt; Ethernet Для Ethernet MTU=1500; заголовки IP -20 байт, заголовок GRE -4 байта...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;1. PPTP&lt;br /&gt;
&lt;br /&gt;
PPTP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; GRE -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовок GRE -4 байта, заголовок PPP -2 байта.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1500-20-4-2=1474; MSS=MTU-40=1434&lt;br /&gt;
&lt;br /&gt;
2. Незашифрованный L2TP поверх IP&lt;br /&gt;
&lt;br /&gt;
L2TP это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Для Ethernet MTU=1500; заголовки IP -20 байт, заголовки UDP -8 байт, заголовки L2TP -16 байт, заголовок PPP -2 байта.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1500-20-8-16-2=1454; MSS=MTU-40=1414&lt;br /&gt;
&lt;br /&gt;
3. L2TP поверх IPSEC&lt;br /&gt;
&lt;br /&gt;
L2TP поверх IPSEC это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; ESP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
Получается то же самое, что и пункт 2, за вычетом размера заголовков ESP -20 байт.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1454-20=1434; MSS=MTU-40=1394&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4. L2TP поверх IPSEC с NAT-Traversal&lt;br /&gt;
Это полезный_TCP -&amp;gt; IP -&amp;gt; PPP -&amp;gt; L2TP -&amp;gt; UDP -&amp;gt; ESP -&amp;gt; IP -&amp;gt; UDP -&amp;gt; IP -&amp;gt; Ethernet&lt;br /&gt;
&lt;br /&gt;
Получается то же самое, что и пункт 3, за вычетом размера заголовков UDP -8 байт и IP -20 байт.&lt;br /&gt;
&lt;br /&gt;
Итого, MTU=1434-28=1406; MSS=MTU-40=1366&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=OpenVPN&amp;diff=2077</id>
		<title>OpenVPN</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=OpenVPN&amp;diff=2077"/>
		<updated>2011-10-10T20:47:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://openmaniak.com/ru/openvpn_tutorial.php Установка OPENVPN] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Настройка OpenVPN  ==&lt;br /&gt;
&lt;br /&gt;
 yum install openvpn&lt;br /&gt;
 cd /etc/openvpn/&lt;br /&gt;
 mkdir certs&lt;br /&gt;
 cd certs&lt;br /&gt;
 cp /usr/share/doc/openvpn/easy-rsa/2.0/* /etc/openvpn/certs/&lt;br /&gt;
&lt;br /&gt;
Дописуємо свох дані в кіці файлу vars &lt;br /&gt;
&lt;br /&gt;
 . ../vars&lt;br /&gt;
 ./clean-all&lt;br /&gt;
&lt;br /&gt;
Будуємо сертифікат &lt;br /&gt;
&lt;br /&gt;
 ./build-ca&lt;br /&gt;
 ./build-dh&lt;br /&gt;
&lt;br /&gt;
Будуємо ключ для сервера &lt;br /&gt;
&lt;br /&gt;
 ./build-key-server server_name&lt;br /&gt;
&lt;br /&gt;
Будуємо ключ для клієнтів (на кожного клієнта по одному) &lt;br /&gt;
&lt;br /&gt;
 ./build-key client1 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Налаштування /etc/openvpn/server.conf &lt;br /&gt;
&amp;lt;pre&amp;gt;port 1194&lt;br /&gt;
proto udp&lt;br /&gt;
dev tun&lt;br /&gt;
ca /etc/openvpn/certs/keys/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/keys/CentOS.crt&lt;br /&gt;
key /etc/openvpn/certs/keys/CentOS.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh /etc/openvpn/certs/keys/dh1024.pem&lt;br /&gt;
&lt;br /&gt;
server 172.16.51.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#для того щоб клієнти бачили один одного&lt;br /&gt;
client-to-client&lt;br /&gt;
&lt;br /&gt;
mssfix        1450&lt;br /&gt;
fragment      1400&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
;user nobody&lt;br /&gt;
;group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
;log         openvpn.log&lt;br /&gt;
;log-append  openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Налаштування клієнта&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
client&lt;br /&gt;
dev tun&lt;br /&gt;
proto udp&lt;br /&gt;
#proto tcp-client&lt;br /&gt;
#Change my.publicdomain.com to your public domain or IP address&lt;br /&gt;
remote 192.168.0.200 1194&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
nobind&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
ca ca2.crt&lt;br /&gt;
cert user.crt&lt;br /&gt;
key user.key&lt;br /&gt;
ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
#DNS Options here, CHANGE THESE !!&lt;br /&gt;
#push &amp;quot;dhcp-option DNS 123.123.123.123&amp;quot;&lt;br /&gt;
#push &amp;quot;dhcp-option DNS 123.123.123.124&amp;quot;&lt;br /&gt;
comp-lzo&lt;br /&gt;
tun-mtu       1500&lt;br /&gt;
mssfix        1450&lt;br /&gt;
fragment      1400&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заборонити клієнту доступ до сервера &lt;br /&gt;
 revoke-full &amp;lt;ім'я клієнта&amp;gt;&lt;br /&gt;
 cp keys/crl.pem /etc/openvpn/&lt;br /&gt;
&lt;br /&gt;
== Проблема openvpn в операционной системе Vista ==&lt;br /&gt;
&lt;br /&gt;
1. Для того чтобы клиент openvpn заработал в windows vista необходимо добавить в конфиг файл клиентской части следующие строки:&lt;br /&gt;
 route-method exe&lt;br /&gt;
 route-delay 2&lt;br /&gt;
&lt;br /&gt;
2. Затем нужно создать bat файл следующего содержания:&lt;br /&gt;
 &amp;quot;C:\Program Files\OpenVPN\bin\openvpn.exe&amp;quot; &amp;quot;полный_путь_до_конфига&amp;quot;&lt;br /&gt;
Для запуска VPN правой кнопкой мыши жмем на полученном bat файле и выбираем &amp;quot;Запустить как администратор&amp;quot;&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Unformat_ntfs&amp;diff=2066</id>
		<title>Unformat ntfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Unformat_ntfs&amp;diff=2066"/>
		<updated>2011-09-15T16:39:45Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.insidepro.com/kk/033/033r.shtml Оригинал] Unformat для NTFS &amp;amp;nbsp;Автор: (c)Крис Касперски ака мыщъх &lt;br /&gt;
&lt;br /&gt;
''Я у вас тут винчестер недавно купил. Так вот, он сдох!&amp;lt;br&amp;gt;- Гарантия какая?&amp;lt;br&amp;gt;- Пожизненная.&amp;lt;br&amp;gt;- Раз сдох, значит гарантия кончилась.''&amp;lt;br&amp;gt;'''(разговор продавца с покупателем)'''&lt;br /&gt;
&lt;br /&gt;
Случилось самое страшное: вы потеряли весь NTFS-раздел целиком, случайно отформатировали или пережили разрушительный дисковый сбой. Где-то там остались миллиарды байт бесценных данных, теперь уже недоступных операционной системе. Как вернуть информацию к жизни? В этой статье автор делится советами ручного и автоматического восстановления.&lt;br /&gt;
&lt;br /&gt;
Введение&lt;br /&gt;
&lt;br /&gt;
До сих пор мы рассматривали лишь незначительные дисковые сбои и легкие разрушения данных типа ошибочно удаленных файлов. Теперь настал черед тяжелых повреждений, при которых прежнее содержимое тома становится недоступно операционной системе. Причиной может быть и непредумышленное форматирование, и искажение главной файловой таблицы, и... Но вы не падайте духом! Из любых переделок NTFS выходит с минимальными потерями (легендарная надежность, как-никак, на то она и NTFS, а не FAT) и во всех этих случаях возможно полное, стопроцентное восстановление данных, если к делу подойти с головой и прямыми руками.&lt;br /&gt;
&lt;br /&gt;
Проще всего начать с форматирования. Для экспериментов нам потребуется format.com, входящий в комплект штатной поставки Windows NT/2000/XP и дисковый раздел, не содержащий ничего полезного. Хорошо бы обзавестись виртуальной машиной - Virtual PC или VMWare, эмулирующей жесткий диск и ускоряющей процедуру форматирования в сотни (!) раз. А ведь время - не только деньги, но и бесцельно прожитые годы, проведенные за созерцанием индикатора прогресса...&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Живой&amp;quot; винчестер лучше не трогать (во всяком случае до тех пор, пока вы не научитесь его восстанавливать). Если нет виртуальной машины (до сих пор не поставили Осла? не пользуетесь IRC?), попробуйте приобрести ZIP-привод (который, кстати говоря, намного надежнее оптических накопителей) и форматируйте дискеты под NTFS - благо штатный форматер это позволяет. С гибкими дисками (флопами) дело обстоит сложнее. По мнению Microsoft, их емкости недостаточно для размещения всех структур данных, хотя простейший расчет разбивает это утверждение в пух и прах, что утилита NTFSflp от Марка Руссиновича (mark@sysinternals.com), собственно говоря, и демонстрирует. Статья &amp;quot;NTFS Support for Floppy Disks&amp;quot; ([http://www.sysinternals.com/ntw2k/freeware/ntfsfloppy.shtml ntfsfloppy]) подробно описывает, как обхитрить систему, заставив ее отформатировать гибкий диск под NTFS (для этого вам потребуется soft-ice).&lt;br /&gt;
&lt;br /&gt;
Форматирование виртуального диска&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[image:image_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Рисунок 1. Форматирование виртуального диска в среде VMWare.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Что происходит при форматировании ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Форматирование диска - это сложная многостадийная операция, намного более сложная и намного более многостадийная, чем это может показаться на первый взгляд. Кто писал свой собственный форматер дискет (а в конце восьмидесятых-начале девяностых его писали практически все), тот поймет. Свои исследования мы начнем с изучения NTFS-тома, отформатированного под NTFS (техника восстановления NTFS-томов, отформатированных под FAT16/32 дана ниже).&lt;br /&gt;
&lt;br /&gt;
При выполнении команды &amp;quot;format X: /U /FS:NTFS&amp;quot; в файловой системе диска X: происходят следующие изменения (форматирование диска GUI-утилитой, вызываемой из контекстного меню &amp;quot;Проводника&amp;quot; осуществляется по аналогичной схеме):&lt;br /&gt;
&lt;br /&gt;
Формируется boot-сектор в формате NTFS;&lt;br /&gt;
&lt;br /&gt;
Генерируется новый серийный номер диска и записывается в boot-сектор по смещению 48h байт от его начала;&lt;br /&gt;
&lt;br /&gt;
Рассчитывается новая контрольная сумма boot-сектора и записывается по смещению 50h от его начала (подробнее см. первую статью этого цикла: &amp;quot;Загрузочный сектор - базовые концепции&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Создается новый $MFT-файл, содержащий сведения обо всех файлах на диске и, как правило, размещаемый поверх старого $MFT-файла; исключения здесь крайне редки - разве что прежний $MFT был заблаговременно перемещен дефрагментатором или при форматировании назначен новый размер кластера. Во всех остальных случаях первые ~24 файловых записи (FILE Record) мрут безвозвратно. В них находится непосредственно сам $MFT, $MFTMirr, корневой каталог, /$LogFile - файл транзакций, /$BITMAP - карта свободного пространства, /$Secure - дескрипторы безопасности и другие служебные файлы;&lt;br /&gt;
&lt;br /&gt;
Инициируется $MFT:$DATA - назначается новая длина ($MFT:$30.AllocatedSize, $MFT:$30.RealSize, $MFT:$80.AllocatedSize, $MFT:$80.RealSize, $MFT:$80.CompressionSize, $MFT:$80.InitializedSize, $MFT:$80.LastVCN), дата/время создания/последней модификации ($MFT:$10.FileCreationTime, $MFT:$10.FileAlertedTime, $MFT:$10.FileReadTime, $MFT:$30.FileCreationTime, $MFT:$30.FileAlertedTime, $MFT:$30.MFTChangeTime, $MFT:$30.FileReadTime) и, самое главное, создается новый список отрезков (data-runs), необратимо затирающий старый, а это значит, что собирать фрагментированный $MFT нам придется по частям (эк, как тебя разворотило - укорял Василий Иванович Анку, в которую угодил артиллеристский снаряд);&lt;br /&gt;
&lt;br /&gt;
Создается новый /$MFT:$BITMAP, отвечающий за занятость файловых записей в MFT - все старые записи помечаются как свободные, однако их фактического удаления при этом не происходит (поле FileRecord.flags остается нетронутым), благодаря чему процедура восстановления заметно упрощается. Чаще всего $MFT:$BITMAP располагается на том же самом месте, что и старый (т.е. между boot-сектором и MFT), забивая прежнее содержимое нулями, однако с помощью утилиты chkdsk его можно восстановить;&lt;br /&gt;
&lt;br /&gt;
Создается новый /$BITMAP-файл, отвечающий за распределение дискового пространства (свободные и занятые кластера), опять-таки затирающий старый, но восстанавливаемый chkdsk'ом;&lt;br /&gt;
&lt;br /&gt;
Создается новый файл журнала транзакций - /$LogFile, в структуру которого мы углубляться все равно не будем, хотя в NTFS LINUX Project она описана достаточно подробно, но восстанавливать транзакции - это уж слишком; за восстановление транзакций нам никто не заплатит, так что нехай они идут лесом;&lt;br /&gt;
&lt;br /&gt;
В заголовок файловой записи $MFT заносится новый LogFile Sequence Number или, сокращенно, LSN;&lt;br /&gt;
&lt;br /&gt;
$MFT назначается новый номер последовательности обновления (Update Sequence Number);&lt;br /&gt;
&lt;br /&gt;
Создается новое зеркало $MFTMirr, необратимое затирающее старое (в текущих системах оно расположено посередине NTFS-раздела), в результате чего возникает резонный вопрос - на хрена нам зеркало, которое ничего не отражает?;&lt;br /&gt;
&lt;br /&gt;
Создаются новые /$Volume, /$AttrDef и другие служебные файлы, играющие сугубо вспомогательную роль и легко восстанавливаемые chkdsk'ом (хотя /$Volume и присутствует в зеркальной копии MFT, его ценность явно преувеличена);&lt;br /&gt;
&lt;br /&gt;
Осуществляется проверка целостности поверхности и все обнаруженные плохие кластеры заносятся в файл /$BadClus;&lt;br /&gt;
&lt;br /&gt;
Формируется новый корневой каталог;&lt;br /&gt;
&lt;br /&gt;
Если до форматирования тома на нем присутствовал /System Volume Information-файл, то он обновляется, в противном случае новый /System Volume Information создается только после перезагрузки;&lt;br /&gt;
&lt;br /&gt;
На самом деле процесс форматирования протекает намного сложнее, но не будем в него углубляться - мы же не форматер пишем! Интересующееся могут взять в руки IDA Pro и расковырять format.com самостоятельно. Подсказка - format.com содержит лишь высокоуровневую надстройку, опирающуюся на библиотеки ifsutil.dll, untfs.dll и... непосредственно сам драйвер файловой системы. Так что, дизассемблировать придется много. Чтобы упростить себе работу, можно пронаблюдать за процессом форматирования с помощью шпионских средств - утилит Марка Руссиновича FileMon и DiskMon, бесплатные копии которых можно скачать с www.sysinternals.com. Также не забывайте о точках останова на основные native-API функции такие как NtFsControlFile, NtDeviceIoControlFile и т.д. Да будет soft-ice вам в помощь!&lt;br /&gt;
&lt;br /&gt;
Исследование процесса форматирования&lt;br /&gt;
&lt;br /&gt;
[[image:image_2.jpg]]&lt;br /&gt;
Рисунок 2. Исследование процесса форматирования с помощью шпионских средств.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Автоматическое восстановление отформатированного диска ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Форматирование не уничтожает файловые записи пользовательских файлов и они могут быть полностью восстановлены. Спасением данных занимается множество утилит (R-Studio, EasyRecovery, GetDataBack и т.д.), однако прямых наследников unformat'а среди них как-то не наблюдается. Unformat восстанавливал весь том целиком, а эти - всего лишь &amp;quot;вытягивают&amp;quot; отдельные уцелевшие файлы/каталоги, переписывая их на новый носитель. Да где же нам его взять?! Запись на оптические накопители отпадает сразу - во-первых, для сохранения 80 - 120 Гбайтного жесткого диска в лучшем случае потребуется грузовик (на чем еще вы перевезете такое количество болванок?), во-вторых, непосредственная запись CD-R/RW не всегда возможна, ведь при крахе системы восстанавливающие утилиты приходится загружать с CD-ROM, а в большинстве компьютеров установлен только один оптический привод, и, в-третьих, ни одна известная мне утилита не позволяет &amp;quot;разрезать&amp;quot; большие файлы на несколько маленьких. Можно, конечно, перегнать данные по локальной сети (а она есть?) или установить дополнительный винчестер (корпус компьютера не опечатан, имеется свободные каналы контроллера и лишняя наличность в кармане). Но не слишком ли это хлопотно? Тем не менее, для &amp;quot;вытягивая&amp;quot; пары сотен особо ценных файлов такая методика вполне подходит.&lt;br /&gt;
&lt;br /&gt;
Продемонстрируем технику автоматического восстановления данных на примере утилиты R-Studio от компании R-TT Inc (www.r-tt.com). Это довольно мощный и в тоже время простой в управлении инструмент, на который можно положиться. После запуска утилиты мы сразу попадаем в окно &amp;quot;Drive View&amp;quot;, где перечислены все физические устройства и логические разделы. Находим среди них &amp;quot;свой&amp;quot; и, нажав правую клавишу мыши, говорим - &amp;quot;Scan&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Нас спрашивают про начальный сектор для сканирования (start), по умолчанию равный 0 - оставляем его без изменений. Размер сканируемой области (size) по умолчанию развертывается на весь раздел. Это гарантирует, что сканер обнаружит все уцелевшие файловые записи, хотя сам поиск займет значительное время. Можно ли ускорить этот процесс? Давайте возьмем ручку и подсчитаем. Допустим, восстанавливаемый раздел содержит сто тысяч файлов. Типичный размер файловой записи составляет 1 Кбайт. При условии, что $MFT не фрагментирован, достаточно просканировать всего ~100 Мбайт от начала раздела. Если эта величина не превышает 10% полной емкости тома (размер пространства, зарезервированного под MFT) и диск никогда не заполнялся более чем на 90%, то, скорее всего, все так и есть. В противном случае $MFT наверняка фрагментирован и живописно разбросан по всему диску. Впрочем, в случае ошибки мы ничем не рискуем. Вводим N Кбайт, где N - предполагаемое кол-во файлов (каталог также считается файлом) и выполняем сканирование - если один или несколько файлов останутся необнаруженными, возвращаемся к настройкам по умолчанию и повторяем процедуру сканирования вновь (если количество имеющихся файлов заранее неизвестно, вводим 10% от емкости тома). В поле File System выбираем файловую систему NTFS, сбрасывая галочки напротив двух остальных (FAT и Ext2FS), т.к. они нам ни к чему, и нажимам &amp;quot;Scan&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
R-Studio&lt;br /&gt;
[[image:image_3.jpg]]&lt;br /&gt;
Рисунок 3. R-Studio осуществляет поиск уцелевших файловых записей.&lt;br /&gt;
&lt;br /&gt;
В процессе сканирования будут найдены все уцелевшие файлы (как удаленные, так и нет) и восстановлена структура директорий по корневой каталог включительно. Постойте! Как же так?! Ведь при форматировании он был уничтожен и сформирован заново! Хе-хе. Файловую систему NTFS можно уничтожить только динамитом. Как уже отмечалось, в отличии от FAT, в NTFS каталоги являются лишь вспомогательной структурой данных, проиндексированной для ускорения отображения их содержимого. Всякая файловая запись, независимо от своего происхождения, содержит ссылку на материнский каталог, представляющую собой номер записи в MFT. А запись корневого каталога всегда располагается по одному и тому же месту!&lt;br /&gt;
&lt;br /&gt;
Удаленные файловые записи могут ссылаться на уже уничтоженные каталоги. R-Studio складывает их в $$$FolderXXX, где XXX - порядковый номер директории. Иерархия подкаталогов в большинстве случаев успешно восстанавливается.&lt;br /&gt;
&lt;br /&gt;
Просмотр виртуального дерева обнаруженных файлов осуществляется нажатием кнопки &amp;amp;lt;F5&amp;amp;gt; или через одноименный пункт контекстного меню. Выбрав файл (или даже целый каталог с кучей подкаталогов) жмем &amp;amp;lt;F2&amp;amp;gt; или залезаем в предварительный просмотр/редактирование (пункт edit/view контекстного меню). Это достаточно мощный инструмент, отображающий внутреннее содержимое восстанавливаемого файла со всеми его атрибутами, списками отрезков и т.д. в &amp;quot;очеловеченном&amp;quot; формате, хотя до NT Exploder'а ему ох как далеко. При желании можно восстановить все файлы &amp;quot;за раз&amp;quot; (&amp;quot;Recovery All&amp;quot;), или выбрать восстановление по маске (Mask).&lt;br /&gt;
&lt;br /&gt;
Восстановленная структура директорий&lt;br /&gt;
[[image:image_4.jpg]]&lt;br /&gt;
Рисунок 4. Восстановленная структура директорий.&lt;br /&gt;
&lt;br /&gt;
Хваленный Easy Recovery от Data Recovery Software вопреки своему названию простотой управления отнюдь не отличается и имеет довольно специфические особенности поведения. С настройками по умолчанию никаких файлов на отформатированном разделе он не увидит и чтобы заставить этого зверюгу заработать в Advanced Options (дополнительные опции), необходимо указать Ignore MFT (игнорировать MFT), но и в этом случае качество восстановления будет оставлять желать лучшего.&lt;br /&gt;
&lt;br /&gt;
Красивый интерфейс Easy Recovery&lt;br /&gt;
&lt;br /&gt;
[[image:image_5.jpg]]&lt;br /&gt;
Рисунок 5. Красивый интерфейс Easy Recovery - компенсация за низкое качество восстановления.&amp;lt;br&amp;gt;Ручное восстановление отформатированного диска&lt;br /&gt;
&lt;br /&gt;
Нашей целью будет ручное восстановление всего отформатированного раздела без использования дополнительных носителей информации и дорогостоящих утилит от сторонних производителей. Все, что потребуется - это любой редактор диска (предпочтительнее всего, конечно же, NT Explorer от Runtime Software, но на худой конец сойдет и бесплатный Disk Probe/Sector Inspector от Microsoft) и chkdsk.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что в процессе форматирования происходит необратимое разрушение большого количества ключевых структур данных, восстанавливать которые вручную было бы слишком затруднительно. Да это, собственно, и не нужно! Идея состоит в том, чтобы вернуть разделу потерянные файловые записи, а все остальные ремонтные работы поручить chkdsk'у - пусть старается.&lt;br /&gt;
&lt;br /&gt;
Дизассемблирование показывает, что единственной структурой данных, без которой не может работать chkdsk, является атрибут $DATA файла $MFT. А раз так, все, что нам надо -воссоздать прежний $MFT:$DATA, разместив его поверх старых файловых записей. В простейшем случае (если $MFT:$DATA не фрагментирован) это достигается спекулятивным увеличением его длины. А как ее увеличить?&lt;br /&gt;
&lt;br /&gt;
Запускаем NT Explorer, переходим в начало MFT (Goto -&amp;amp;gt; Mft), щелкаем по $MFT файлу, находим атрибут $DATA (80h) и увеличиваем поля Allocated Size/Real Size/Compressed Size на требуемую величину, параллельно с этим корректируя список отрезков (он же run-list). Поле Last VCN трогать не нужно - chkdsk исправит его и сам. Как определить длину нефрагментированного MFT-файла? Она равна разнице номеров первого и последнего секторов, в начале которых присутствует сигнатура &amp;quot;FILE&amp;quot;, умноженная на 512 байт (исключая сектора, принадлежащие $MFTMirr) Известные мне дисковые редакторы не поддерживают поиска последнего вхождения, поэтому соответствующую утилиту приходится писать самостоятельно. Впрочем, точную длину MFT определять совершенно необязательно и вполне допустимо взять ее с запасом - лишнее все равно отсеет chkdsk. Действуйте по принципу - лучше перебрать, чем недобрать.&lt;br /&gt;
&lt;br /&gt;
Ручное восстановление MFT&lt;br /&gt;
[[image:image_6.jpg]]&lt;br /&gt;
Рисунок 6. Ручное восстановление MFT. Подчеркнуты поля, подлежащие изменению.&lt;br /&gt;
&lt;br /&gt;
Коварный NT Explorer не позволяет редактировать поля в естественном режиме отображения, заставляя нас переключаться в HEX-mode и искать смещения всех значений самостоятельно. Найти заголовок атрибута $DATA очень просто - в его начале расположена последовательность 80 00 00 00 xx 00 00 00 01. В NTFS версии 3.0 она находится по смещению F8h от начала сектора. Поле Real Size во всех версиях NTFS располагается по смещению 30h относительно заголовка, а поля Allocated Size и Initialized Size, соответственно, по смещениям 28h/38h байт, причем значение Allocates Size должно быть кратно размеру кластера. Кстати, о кластерах. Убедитесь, что при переформатировании диска размер кластера не изменился, в противном случае у вас ничего не получится. Как восстановить исходный размер кластера? Да очень просто - набраться мужества и переформатировать восстанавливаемый диск с ключом /A:x, где x - размер кластера. А как его определить? Возьмем любой файл с известным содержимым и проанализируем его run-list. Пускаем контекстный поиск по всему диску, находим файл, запоминаем (записываем на бумажке) его стартовый сектор, после чего открываем закрепленный за ним FILE Record, декодируем run-list и вычисляем номер первого кластера. Делим номер сектора на номер кластера и получаем искомую величину.&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо сгенерировать новый run-list. В общем случае он будет выглядеть так: 13 XX XX XX YY 00, где XX XX XX - трехбайтовый размер $MFT в кластерах, а YY - стартовый кластер. Стартовый кластер обязательно должен указывать на первый кластер MFT, в противном случае chkdsk не сможет работать. Если новый run-list длиннее нынешнего (а именно так, скорее всего, и будет) необходимо скорректировать длину атрибутного заголовка (она расположена по смещению 04h от его начала). Проделав эту нехитрую операцию, запустим chkdsk с ключом /F и блаженно откинемся на спинку кресла, созерцая как возрождаются наши милые папки и файлы. Единственное, что не восстанавливается - так это дескрипторы безопасности: всем файлам/папкам назначаются права доступа по умолчанию. В остальном же с отремонтированным диском вполне можно работать, не опасаясь, что он рухнет окончательно. Файлы, ссылающиеся на несуществующие каталоги складываются в папку Found.xxx. Это &amp;quot;долгожители&amp;quot;, пережившие несколько циклов переформатирования, в буквальном смысле вытащенные с потустороннего света.&lt;br /&gt;
&lt;br /&gt;
Сложнее восстановить том, чей MFT сильно фрагментирован. Прежний run-list при форматировании был уничтожен, зеркальная копия также пострадала. Ничего другого не остается, как собирать все фрагменты руками. Звучит намного страшнее, чем выглядит. В отличии от всех остальных файлов диска, $MFT-файл имеет замечательную сигнатуру FILE, присутствующую в начале каждой файловой записи. Все, что нам нужно - последовательно сканируя раздел от первого кластера до последнего, выписать начало и конец каждого из фрагментов, принадлежащих MFT. Затем из этой цепочки необходимо исключить $MFTMirr. Его легко узнать - он расположен в середине раздела и содержит копии файловых записей $MFT, $MFTMirr, $LogFile и $Volume, причем $MFTMirr ссылается сам на себя. Допустим, наш список выглядит так: 08h - 333h, 669h - 966h, 1013 - 3210h. В грубом приближении ему будет соответствовать следующий run-list: 12 2B 03 08 22 23 03 69 96 22 FD 21 13 10 00. (Подробнее о кодировании/декодировании run-list'ов см. &amp;quot;Списки отрезков&amp;quot; в прошлой статье этого цикла).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;В грубом&amp;quot;, потому что мы не знаем, в какой последовательности располагались эти отрезки в файле (порядок расположения фрагментов на диске далеко не всегда совпадает с порядком отрезков в run-list'е). Что произойдет, если порядок сборки $MFT-файла окажется нарушен? А вот что - внутри MFT все файловые записи ссылаются друг на друга по своему порядковому номеру, представляющим индекс массива. Эти ссылки необходимы для восстановления структуры директорий, организации hard link'ов и еще кое-чего. Ссылки на материнский каталог дублируются в индексах и восстанавливаются элементарно. Hard link'и мрут безвозвратно (ну, разве что попробовать пересобрать $MFT-файл в другом порядке), но они практически нигде и никем не используются - как говорится, было бы что терять. По-настоящему туго приходится сильно фрагментированным файлам, занимающим несколько файловых записей, раскиданных по разным $MFT-фрагментам. Здесь выручает только перестановка фрагментов. К счастью, количество комбинаций обычно бывает невелико и процедура восстановления занимает совсем немного времени. Хорошая новость - начиная с NTFS версии 3.1 (соответствующей Windows XP) в MFT номера файловых записей хранятся в явном виде (четырехбайтовое поле, расположенное по смещению 2Ch от начала FILE Record), что делает задачу восстановления тривиальной.&amp;lt;br&amp;gt;Восстановление после тяжелых разрушений&lt;br /&gt;
&lt;br /&gt;
В результате сбоя содержимое дискового тома может стать недоступно операционной системе и при попытке чтения его оглавления будет выдаваться сообщения в стиле &amp;quot;Файл или папка повреждены. Чтение невозможно&amp;quot;, &amp;quot;Нет доступа к диску&amp;quot;, &amp;quot;Системе не удается найти логическое устройство&amp;quot; и т.д. Chkdsk говорит, что &amp;quot;Повреждена основная таблица файлов&amp;quot; и прекращает работу. Караул! Верните мой том! Пиво, водка и вобла гарантируется!&lt;br /&gt;
&lt;br /&gt;
Не паникуйте! Попробуйте запустить NT Explorer и посмотрите, что он покажет. Маловероятно, чтобы содержимое всего тома было утеряно целиком (это же что такое с ним нужно было сделать?!). Если хотя бы часть файловых записей уцелела, R-Studio/GetDataBack/EasyRecovery их обязательно восстановят!&lt;br /&gt;
&lt;br /&gt;
Анализ показывает, что основной причиной, по которой chkdsk отказывается проверять том, обычно становится порча файловой записи, описывающей $MFT. Если в процессе обновления $MFT внезапно отключить питание - такой исход событий вполне вероятен, особенно на жестких дисках с емким аппаратным кэшем - они не успевают завершить сохранение секторов на энергии, накопленной в конденсаторах, а вот их младшие собраться с этим справляются. То же самое происходит при неудачном перемещении $MFT файла или физическом разрушении первого MFT-сектора. Зеркальная копия $MFT во всех этих случаях остается цела, однако chkdsk по каким-то таинственным причинам не хочет ей пользоваться и вы должны восстановить ее самостоятельно. Просто скопируйте первый сектор $MFTMirr в первый сектор $MFT и громко скажите &amp;quot;ниндзя&amp;quot;! Поклонники Sector Inspector'а могут воспользоваться командным файлов следующего содержания.&lt;br /&gt;
&lt;br /&gt;
SECINSPECT.EXE -backup d: backup.dsk XXX 1&amp;lt;br&amp;gt;SECINSPECT.EXE -restore d: backup.dsk YYY CONFIRM&lt;br /&gt;
&lt;br /&gt;
Листинг 1. Командный файл для ручного восстановления $MFT из $MFTMirr, XXX - номер сектора $MFTMirr, YYY - номер сектора $MFT.&lt;br /&gt;
&lt;br /&gt;
Теперь можно смело пускать chkdsk. Если же он по-прежнему не работает, значит либо поврежден загрузочный сектор (а методику его восстановления мы уже обсуждали), либо run-list файла $MFT:$DATA не совпадает с истинным началом MFT (найдите сектор с файловой записью $MFT внутри и исправьте run-list), либо размер кластера, прописанный в boot-секторе отличается от его фактического размера (о том, как определять истинный размер кластера, мы уже только что говорили).&lt;br /&gt;
&lt;br /&gt;
Если же сбой был настолько серьезен, что вместе с $MFT пострадало и зеркало, задача сводится к восстановлению отформатированного диска. Кстати говоря, при тяжелых разрушениях файловой структуры, когда на диске образуется настоящий кавардак, восстановление тома полезно начинать с... его форматирования. Нет, это не первоапрельская шутка! Утилита format формирует заведомо исправные ключевые структуры, ну а подключение файловых записей - не проблема. Главное - сохраните run-list файла $MFT:$DATA, если, конечно, он еще уцелел. Все остальное - дело техники!&lt;br /&gt;
&lt;br /&gt;
Безуспешная попытка прочитать поврежденный том&lt;br /&gt;
[[image:image_7.jpg]]&lt;br /&gt;
Рисунок 7 Безуспешная попытка прочитать поврежденный том.&amp;lt;br&amp;gt;Восстановление NTFS-тома, отформатированного под FAT16/32&lt;br /&gt;
&lt;br /&gt;
При переформатировании диска, операционные системы семейства NT никогда не изменяют тип файловой системы (разве что попросить их это сделать явно), поэтому непреднамеренное форматирование NTFS раздела в FAT16/32 крайне маловероятно. Windows 9x/MS-DOS, напротив, любой диск стремятся отформатировать под FAT16/32, не замечая, что на нем что-то уже находится. Непреднамеренная порча NTFS-разделов при установке Windows 9x/MS-DOS поверх Windows NT - обычное дело, через которое проходит уже второе поколение пользователей.&lt;br /&gt;
&lt;br /&gt;
Стратегия спасения данных во всем похожа на восстановление NTFS-тома, отформатированного под NTFS, с той лишь разницей, что при создании таблицы размещения файлов (file allocation table) первые несколько тысяч файловых записей в MFT затираются безвозвратно (впрочем, их еще можно собрать руками, действуя по методике описанной в разделе &amp;quot;Разгребая кластерные обломки&amp;quot; предыдущей статьи этого цикла).&lt;br /&gt;
&lt;br /&gt;
Файлы с уцелевшей FILE RECORD легко восстанавливаются R-Studio/GetDataBack/EasyRecovery. Для ручного восстановления всего тома его необходимо заново отформатировать под NTFS, предварительно определив количество секторов в кластере. Далее действуем по плану - увеличиваем размер $MFT, пускаем chkdsk и собираем все, что только можно собрать. Поскольку количество файлов, хранящихся на современных дисках, зачастую исчисляется многими миллионами, потеря первой тысячи из них не так уж и страшна (если только по закону подлости это не будут самые ценные файлы).&amp;lt;br&amp;gt;Источники угрозы&lt;br /&gt;
&lt;br /&gt;
Почему погибают дисковые разделы? Ниже приводится список наиболее распространенных причини, отсортированный в порядке убывания их &amp;quot;популярности&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Ошибки оператора, вирусы, троянские программы;&lt;br /&gt;
&lt;br /&gt;
Отключение питания/зависание системы во время интенсивных дисковых операций, сопровождаемых обновлением MFT (например, удаление/добавление файлов или каталогов);&lt;br /&gt;
&lt;br /&gt;
Некорректное поведение различных дисковых утилит (Partition Magic, Ahead Nero, Norton Disk Doctor и т.д.);&lt;br /&gt;
&lt;br /&gt;
Физические дефекты оперативной памяти, приводящие к нарушению целостности дискового кэша и как следствие - порче самого диска;&lt;br /&gt;
&lt;br /&gt;
Некорректное поведение привилегированных драйверов, случайно или преднамеренно &amp;quot;залетающих&amp;quot; внутрь служебных структур NTFS-драйвера;&lt;br /&gt;
&lt;br /&gt;
Полезные советы - план превентивных действий по спасению данных&lt;br /&gt;
&lt;br /&gt;
Чтобы предотвратить разрушение тома и упростить задачу восстановления данных, рекомендуется заблаговременно выполнить следующий комплекс мероприятий:&lt;br /&gt;
&lt;br /&gt;
Переместите $MFT подальше от начала раздела. Первые секторы раздела, как показывает практика, самое небезопасное место. Во-первых, сюда стремятся вирусы (миф о невозможности прямого доступа к диску под NT всего лишь миф - читайте описание функции CreateFile и инструкцию на ASPI32-драйвер), во-вторых, некоторые утилиты (и, в частности, Ahead Nero) при некоторых обстоятельствах путают жесткий диск с оптическим накопителем, записывая образ не &amp;quot;туда&amp;quot;, а, значит, в первых ~700 Мбайтах физического диска (не логического тома!) не должно быть ничего ценного, в-третьих, если вы вдруг запустите WipeDisk или любую другую затирающую утилиту, первым погибнет именно $MFT, без которого весь дисковый том - просто груда мусора, в четвертых... да много разных причин можно найти. Просто переместите $MFT, вам что - трудно? Достаточно взять любой дефрагментатор, распространяющийся в исходных текстах (энтузиасты! ау! присоединяйтесь к проекту http://sourceforge.net/projects/opendefrag/) и слегка доработать его &amp;quot;напильником&amp;quot; под наши нужды. Естественно, валерьянка и резервная копия обязательно должны быть под рукой!&lt;br /&gt;
&lt;br /&gt;
Не допускайте фрагментации $MFT-файла! Не создавайте на диске огромного количества мелких файлов и не заполняйте его более чем на 90%. Стандартный дефрагментатор, входящий в комплект штатной поставки Windows 2000/XP, не позволяет дефрагментировать $MFT и приходится прибегать к сторонним средствам, лучшим из которых на мой взгляд является O&amp;amp;amp;O Defrag Pro от одноименной компании (www.oo-software.com). Это действительно профессиональный дефрагментатор, к тому же поддерживающий командную строку;&lt;br /&gt;
&lt;br /&gt;
Периодически создавайте резервную копию файловой записи $MFT - для этого достаточно сохранить один-единственный (!) сектор - первый сектор MFT, номер которого содержится в boot, только не забывайте его периодически обновлять, ведь при добавлении новых файлов/каталогов MFT планомерно расширяется и старые списки отрезков становятся все менее и менее актуальны;&lt;br /&gt;
&lt;br /&gt;
Нормальный дисковый том&lt;br /&gt;
[[image:image_8.jpg]]&lt;br /&gt;
Рисунок 8. Нормальный дисковый том (MFT, выделенный желтым цветом, расположен в начале раздела).&lt;br /&gt;
&lt;br /&gt;
Иммунизированный дисковый том&lt;br /&gt;
[[image:image_9.jpg]]&lt;br /&gt;
Рисунок 9. &amp;quot;Иммунизированный&amp;quot; дисковый том (MFT расположен в середине).&amp;lt;br&amp;gt;Заключение&lt;br /&gt;
&lt;br /&gt;
Наш затянувшийся разговор о восстановлении данных подходит к своему логическому концу, однако NTFS не стоит на месте, а интенсивно развирается. И хотя до сих пор эти изменения носили чисто косметический характер, в Windows Longhorn все обещает кардинальным образом измениться. Microsoft активно работает над новой файловой системой - Windows File System или сокращенно WinFS, сроки выхода которой, кстати говоря, постоянно переносятся (разработка файловой системы - это не шутка!).&lt;br /&gt;
&lt;br /&gt;
По словам вице-президента Microsoft Боба Маглиа, WinFS - это все та же NTFS, с прикрученным SQL и XML. Насколько изменятся базовые структуры файловой системы, общественности до сих пор неясно. И уж совсем непонятно, зачем NTFS понадобился реляционный SQL, когда эти возможности в нее закладывались изначально, просто их не успели доделать. Любой системный программист запросто напишет драйвер, принимающий SQL/XML запросы и транслирующий их в обращения к драйверу текущей файловой системы! Что-либо менять внутри NTFS совсем необязательно. Сдается мне, что это всего лишь очередной маркетинговый трюк, подталкивающих пользователей к переходу на ненавистный мне Longhorn!&lt;br /&gt;
&lt;br /&gt;
С другой стороны, развитие NTFS можно только приветствовать, поскольку оно дает пищу всем специалистам по восстановлению данных, ведь старые утилиты с новой файловой системой, скорей всего, окажутся несовместимы.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Windows&amp;diff=2065</id>
		<title>Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Windows&amp;diff=2065"/>
		<updated>2011-09-15T16:37:22Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; [[Windows boot]]&lt;br /&gt;
 [[Keyboard|Keyboard]]&lt;br /&gt;
 [[Fixboot]]&lt;br /&gt;
 [[Thunderbird]]&lt;br /&gt;
 [[Terminal Server]]&lt;br /&gt;
 [[VirtualBox Network Fix]]&lt;br /&gt;
 [[Unformat_ntfs]]&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Unformat_ntfs&amp;diff=2064</id>
		<title>Unformat ntfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Unformat_ntfs&amp;diff=2064"/>
		<updated>2011-09-15T13:32:34Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.insidepro.com/kk/033/033r.shtml Оригинал] Unformat для NTFS &amp;amp;nbsp;Автор: (c)Крис Касперски ака мыщъх &lt;br /&gt;
&lt;br /&gt;
''Я у вас тут винчестер недавно купил. Так вот, он сдох!&amp;lt;br&amp;gt;- Гарантия какая?&amp;lt;br&amp;gt;- Пожизненная.&amp;lt;br&amp;gt;- Раз сдох, значит гарантия кончилась.''&amp;lt;br&amp;gt;'''(разговор продавца с покупателем)'''&lt;br /&gt;
&lt;br /&gt;
Случилось самое страшное: вы потеряли весь NTFS-раздел целиком, случайно отформатировали или пережили разрушительный дисковый сбой. Где-то там остались миллиарды байт бесценных данных, теперь уже недоступных операционной системе. Как вернуть информацию к жизни? В этой статье автор делится советами ручного и автоматического восстановления.&lt;br /&gt;
&lt;br /&gt;
Введение&lt;br /&gt;
&lt;br /&gt;
До сих пор мы рассматривали лишь незначительные дисковые сбои и легкие разрушения данных типа ошибочно удаленных файлов. Теперь настал черед тяжелых повреждений, при которых прежнее содержимое тома становится недоступно операционной системе. Причиной может быть и непредумышленное форматирование, и искажение главной файловой таблицы, и... Но вы не падайте духом! Из любых переделок NTFS выходит с минимальными потерями (легендарная надежность, как-никак, на то она и NTFS, а не FAT) и во всех этих случаях возможно полное, стопроцентное восстановление данных, если к делу подойти с головой и прямыми руками.&lt;br /&gt;
&lt;br /&gt;
Проще всего начать с форматирования. Для экспериментов нам потребуется format.com, входящий в комплект штатной поставки Windows NT/2000/XP и дисковый раздел, не содержащий ничего полезного. Хорошо бы обзавестись виртуальной машиной - Virtual PC или VMWare, эмулирующей жесткий диск и ускоряющей процедуру форматирования в сотни (!) раз. А ведь время - не только деньги, но и бесцельно прожитые годы, проведенные за созерцанием индикатора прогресса...&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Живой&amp;quot; винчестер лучше не трогать (во всяком случае до тех пор, пока вы не научитесь его восстанавливать). Если нет виртуальной машины (до сих пор не поставили Осла? не пользуетесь IRC?), попробуйте приобрести ZIP-привод (который, кстати говоря, намного надежнее оптических накопителей) и форматируйте дискеты под NTFS - благо штатный форматер это позволяет. С гибкими дисками (флопами) дело обстоит сложнее. По мнению Microsoft, их емкости недостаточно для размещения всех структур данных, хотя простейший расчет разбивает это утверждение в пух и прах, что утилита NTFSflp от Марка Руссиновича (mark@sysinternals.com), собственно говоря, и демонстрирует. Статья &amp;quot;NTFS Support for Floppy Disks&amp;quot; ([http://www.sysinternals.com/ntw2k/freeware/ntfsfloppy.shtml ntfsfloppy]) подробно описывает, как обхитрить систему, заставив ее отформатировать гибкий диск под NTFS (для этого вам потребуется soft-ice).&lt;br /&gt;
&lt;br /&gt;
Форматирование виртуального диска&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[File:image_1.jpg]]&lt;br /&gt;
&lt;br /&gt;
Рисунок 1. Форматирование виртуального диска в среде VMWare.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Что происходит при форматировании ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Форматирование диска - это сложная многостадийная операция, намного более сложная и намного более многостадийная, чем это может показаться на первый взгляд. Кто писал свой собственный форматер дискет (а в конце восьмидесятых-начале девяностых его писали практически все), тот поймет. Свои исследования мы начнем с изучения NTFS-тома, отформатированного под NTFS (техника восстановления NTFS-томов, отформатированных под FAT16/32 дана ниже).&lt;br /&gt;
&lt;br /&gt;
При выполнении команды &amp;quot;format X: /U /FS:NTFS&amp;quot; в файловой системе диска X: происходят следующие изменения (форматирование диска GUI-утилитой, вызываемой из контекстного меню &amp;quot;Проводника&amp;quot; осуществляется по аналогичной схеме):&lt;br /&gt;
&lt;br /&gt;
Формируется boot-сектор в формате NTFS;&lt;br /&gt;
&lt;br /&gt;
Генерируется новый серийный номер диска и записывается в boot-сектор по смещению 48h байт от его начала;&lt;br /&gt;
&lt;br /&gt;
Рассчитывается новая контрольная сумма boot-сектора и записывается по смещению 50h от его начала (подробнее см. первую статью этого цикла: &amp;quot;Загрузочный сектор - базовые концепции&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Создается новый $MFT-файл, содержащий сведения обо всех файлах на диске и, как правило, размещаемый поверх старого $MFT-файла; исключения здесь крайне редки - разве что прежний $MFT был заблаговременно перемещен дефрагментатором или при форматировании назначен новый размер кластера. Во всех остальных случаях первые ~24 файловых записи (FILE Record) мрут безвозвратно. В них находится непосредственно сам $MFT, $MFTMirr, корневой каталог, /$LogFile - файл транзакций, /$BITMAP - карта свободного пространства, /$Secure - дескрипторы безопасности и другие служебные файлы;&lt;br /&gt;
&lt;br /&gt;
Инициируется $MFT:$DATA - назначается новая длина ($MFT:$30.AllocatedSize, $MFT:$30.RealSize, $MFT:$80.AllocatedSize, $MFT:$80.RealSize, $MFT:$80.CompressionSize, $MFT:$80.InitializedSize, $MFT:$80.LastVCN), дата/время создания/последней модификации ($MFT:$10.FileCreationTime, $MFT:$10.FileAlertedTime, $MFT:$10.FileReadTime, $MFT:$30.FileCreationTime, $MFT:$30.FileAlertedTime, $MFT:$30.MFTChangeTime, $MFT:$30.FileReadTime) и, самое главное, создается новый список отрезков (data-runs), необратимо затирающий старый, а это значит, что собирать фрагментированный $MFT нам придется по частям (эк, как тебя разворотило - укорял Василий Иванович Анку, в которую угодил артиллеристский снаряд);&lt;br /&gt;
&lt;br /&gt;
Создается новый /$MFT:$BITMAP, отвечающий за занятость файловых записей в MFT - все старые записи помечаются как свободные, однако их фактического удаления при этом не происходит (поле FileRecord.flags остается нетронутым), благодаря чему процедура восстановления заметно упрощается. Чаще всего $MFT:$BITMAP располагается на том же самом месте, что и старый (т.е. между boot-сектором и MFT), забивая прежнее содержимое нулями, однако с помощью утилиты chkdsk его можно восстановить;&lt;br /&gt;
&lt;br /&gt;
Создается новый /$BITMAP-файл, отвечающий за распределение дискового пространства (свободные и занятые кластера), опять-таки затирающий старый, но восстанавливаемый chkdsk'ом;&lt;br /&gt;
&lt;br /&gt;
Создается новый файл журнала транзакций - /$LogFile, в структуру которого мы углубляться все равно не будем, хотя в NTFS LINUX Project она описана достаточно подробно, но восстанавливать транзакции - это уж слишком; за восстановление транзакций нам никто не заплатит, так что нехай они идут лесом;&lt;br /&gt;
&lt;br /&gt;
В заголовок файловой записи $MFT заносится новый LogFile Sequence Number или, сокращенно, LSN;&lt;br /&gt;
&lt;br /&gt;
$MFT назначается новый номер последовательности обновления (Update Sequence Number);&lt;br /&gt;
&lt;br /&gt;
Создается новое зеркало $MFTMirr, необратимое затирающее старое (в текущих системах оно расположено посередине NTFS-раздела), в результате чего возникает резонный вопрос - на хрена нам зеркало, которое ничего не отражает?;&lt;br /&gt;
&lt;br /&gt;
Создаются новые /$Volume, /$AttrDef и другие служебные файлы, играющие сугубо вспомогательную роль и легко восстанавливаемые chkdsk'ом (хотя /$Volume и присутствует в зеркальной копии MFT, его ценность явно преувеличена);&lt;br /&gt;
&lt;br /&gt;
Осуществляется проверка целостности поверхности и все обнаруженные плохие кластеры заносятся в файл /$BadClus;&lt;br /&gt;
&lt;br /&gt;
Формируется новый корневой каталог;&lt;br /&gt;
&lt;br /&gt;
Если до форматирования тома на нем присутствовал /System Volume Information-файл, то он обновляется, в противном случае новый /System Volume Information создается только после перезагрузки;&lt;br /&gt;
&lt;br /&gt;
На самом деле процесс форматирования протекает намного сложнее, но не будем в него углубляться - мы же не форматер пишем! Интересующееся могут взять в руки IDA Pro и расковырять format.com самостоятельно. Подсказка - format.com содержит лишь высокоуровневую надстройку, опирающуюся на библиотеки ifsutil.dll, untfs.dll и... непосредственно сам драйвер файловой системы. Так что, дизассемблировать придется много. Чтобы упростить себе работу, можно пронаблюдать за процессом форматирования с помощью шпионских средств - утилит Марка Руссиновича FileMon и DiskMon, бесплатные копии которых можно скачать с www.sysinternals.com. Также не забывайте о точках останова на основные native-API функции такие как NtFsControlFile, NtDeviceIoControlFile и т.д. Да будет soft-ice вам в помощь!&lt;br /&gt;
&lt;br /&gt;
Исследование процесса форматирования&lt;br /&gt;
&lt;br /&gt;
[[File:image_2.jpg]]&lt;br /&gt;
Рисунок 2. Исследование процесса форматирования с помощью шпионских средств.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Автоматическое восстановление отформатированного диска ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Форматирование не уничтожает файловые записи пользовательских файлов и они могут быть полностью восстановлены. Спасением данных занимается множество утилит (R-Studio, EasyRecovery, GetDataBack и т.д.), однако прямых наследников unformat'а среди них как-то не наблюдается. Unformat восстанавливал весь том целиком, а эти - всего лишь &amp;quot;вытягивают&amp;quot; отдельные уцелевшие файлы/каталоги, переписывая их на новый носитель. Да где же нам его взять?! Запись на оптические накопители отпадает сразу - во-первых, для сохранения 80 - 120 Гбайтного жесткого диска в лучшем случае потребуется грузовик (на чем еще вы перевезете такое количество болванок?), во-вторых, непосредственная запись CD-R/RW не всегда возможна, ведь при крахе системы восстанавливающие утилиты приходится загружать с CD-ROM, а в большинстве компьютеров установлен только один оптический привод, и, в-третьих, ни одна известная мне утилита не позволяет &amp;quot;разрезать&amp;quot; большие файлы на несколько маленьких. Можно, конечно, перегнать данные по локальной сети (а она есть?) или установить дополнительный винчестер (корпус компьютера не опечатан, имеется свободные каналы контроллера и лишняя наличность в кармане). Но не слишком ли это хлопотно? Тем не менее, для &amp;quot;вытягивая&amp;quot; пары сотен особо ценных файлов такая методика вполне подходит.&lt;br /&gt;
&lt;br /&gt;
Продемонстрируем технику автоматического восстановления данных на примере утилиты R-Studio от компании R-TT Inc (www.r-tt.com). Это довольно мощный и в тоже время простой в управлении инструмент, на который можно положиться. После запуска утилиты мы сразу попадаем в окно &amp;quot;Drive View&amp;quot;, где перечислены все физические устройства и логические разделы. Находим среди них &amp;quot;свой&amp;quot; и, нажав правую клавишу мыши, говорим - &amp;quot;Scan&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Нас спрашивают про начальный сектор для сканирования (start), по умолчанию равный 0 - оставляем его без изменений. Размер сканируемой области (size) по умолчанию развертывается на весь раздел. Это гарантирует, что сканер обнаружит все уцелевшие файловые записи, хотя сам поиск займет значительное время. Можно ли ускорить этот процесс? Давайте возьмем ручку и подсчитаем. Допустим, восстанавливаемый раздел содержит сто тысяч файлов. Типичный размер файловой записи составляет 1 Кбайт. При условии, что $MFT не фрагментирован, достаточно просканировать всего ~100 Мбайт от начала раздела. Если эта величина не превышает 10% полной емкости тома (размер пространства, зарезервированного под MFT) и диск никогда не заполнялся более чем на 90%, то, скорее всего, все так и есть. В противном случае $MFT наверняка фрагментирован и живописно разбросан по всему диску. Впрочем, в случае ошибки мы ничем не рискуем. Вводим N Кбайт, где N - предполагаемое кол-во файлов (каталог также считается файлом) и выполняем сканирование - если один или несколько файлов останутся необнаруженными, возвращаемся к настройкам по умолчанию и повторяем процедуру сканирования вновь (если количество имеющихся файлов заранее неизвестно, вводим 10% от емкости тома). В поле File System выбираем файловую систему NTFS, сбрасывая галочки напротив двух остальных (FAT и Ext2FS), т.к. они нам ни к чему, и нажимам &amp;quot;Scan&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
R-Studio&lt;br /&gt;
[[File:image_3.jpg]]&lt;br /&gt;
Рисунок 3. R-Studio осуществляет поиск уцелевших файловых записей.&lt;br /&gt;
&lt;br /&gt;
В процессе сканирования будут найдены все уцелевшие файлы (как удаленные, так и нет) и восстановлена структура директорий по корневой каталог включительно. Постойте! Как же так?! Ведь при форматировании он был уничтожен и сформирован заново! Хе-хе. Файловую систему NTFS можно уничтожить только динамитом. Как уже отмечалось, в отличии от FAT, в NTFS каталоги являются лишь вспомогательной структурой данных, проиндексированной для ускорения отображения их содержимого. Всякая файловая запись, независимо от своего происхождения, содержит ссылку на материнский каталог, представляющую собой номер записи в MFT. А запись корневого каталога всегда располагается по одному и тому же месту!&lt;br /&gt;
&lt;br /&gt;
Удаленные файловые записи могут ссылаться на уже уничтоженные каталоги. R-Studio складывает их в $$$FolderXXX, где XXX - порядковый номер директории. Иерархия подкаталогов в большинстве случаев успешно восстанавливается.&lt;br /&gt;
&lt;br /&gt;
Просмотр виртуального дерева обнаруженных файлов осуществляется нажатием кнопки &amp;amp;lt;F5&amp;amp;gt; или через одноименный пункт контекстного меню. Выбрав файл (или даже целый каталог с кучей подкаталогов) жмем &amp;amp;lt;F2&amp;amp;gt; или залезаем в предварительный просмотр/редактирование (пункт edit/view контекстного меню). Это достаточно мощный инструмент, отображающий внутреннее содержимое восстанавливаемого файла со всеми его атрибутами, списками отрезков и т.д. в &amp;quot;очеловеченном&amp;quot; формате, хотя до NT Exploder'а ему ох как далеко. При желании можно восстановить все файлы &amp;quot;за раз&amp;quot; (&amp;quot;Recovery All&amp;quot;), или выбрать восстановление по маске (Mask).&lt;br /&gt;
&lt;br /&gt;
Восстановленная структура директорий&lt;br /&gt;
[[File:image_4.jpg]]&lt;br /&gt;
Рисунок 4. Восстановленная структура директорий.&lt;br /&gt;
&lt;br /&gt;
Хваленный Easy Recovery от Data Recovery Software вопреки своему названию простотой управления отнюдь не отличается и имеет довольно специфические особенности поведения. С настройками по умолчанию никаких файлов на отформатированном разделе он не увидит и чтобы заставить этого зверюгу заработать в Advanced Options (дополнительные опции), необходимо указать Ignore MFT (игнорировать MFT), но и в этом случае качество восстановления будет оставлять желать лучшего.&lt;br /&gt;
&lt;br /&gt;
Красивый интерфейс Easy Recovery&lt;br /&gt;
&lt;br /&gt;
[[File:image_5.jpg]]&lt;br /&gt;
Рисунок 5. Красивый интерфейс Easy Recovery - компенсация за низкое качество восстановления.&amp;lt;br&amp;gt;Ручное восстановление отформатированного диска&lt;br /&gt;
&lt;br /&gt;
Нашей целью будет ручное восстановление всего отформатированного раздела без использования дополнительных носителей информации и дорогостоящих утилит от сторонних производителей. Все, что потребуется - это любой редактор диска (предпочтительнее всего, конечно же, NT Explorer от Runtime Software, но на худой конец сойдет и бесплатный Disk Probe/Sector Inspector от Microsoft) и chkdsk.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что в процессе форматирования происходит необратимое разрушение большого количества ключевых структур данных, восстанавливать которые вручную было бы слишком затруднительно. Да это, собственно, и не нужно! Идея состоит в том, чтобы вернуть разделу потерянные файловые записи, а все остальные ремонтные работы поручить chkdsk'у - пусть старается.&lt;br /&gt;
&lt;br /&gt;
Дизассемблирование показывает, что единственной структурой данных, без которой не может работать chkdsk, является атрибут $DATA файла $MFT. А раз так, все, что нам надо -воссоздать прежний $MFT:$DATA, разместив его поверх старых файловых записей. В простейшем случае (если $MFT:$DATA не фрагментирован) это достигается спекулятивным увеличением его длины. А как ее увеличить?&lt;br /&gt;
&lt;br /&gt;
Запускаем NT Explorer, переходим в начало MFT (Goto -&amp;amp;gt; Mft), щелкаем по $MFT файлу, находим атрибут $DATA (80h) и увеличиваем поля Allocated Size/Real Size/Compressed Size на требуемую величину, параллельно с этим корректируя список отрезков (он же run-list). Поле Last VCN трогать не нужно - chkdsk исправит его и сам. Как определить длину нефрагментированного MFT-файла? Она равна разнице номеров первого и последнего секторов, в начале которых присутствует сигнатура &amp;quot;FILE&amp;quot;, умноженная на 512 байт (исключая сектора, принадлежащие $MFTMirr) Известные мне дисковые редакторы не поддерживают поиска последнего вхождения, поэтому соответствующую утилиту приходится писать самостоятельно. Впрочем, точную длину MFT определять совершенно необязательно и вполне допустимо взять ее с запасом - лишнее все равно отсеет chkdsk. Действуйте по принципу - лучше перебрать, чем недобрать.&lt;br /&gt;
&lt;br /&gt;
Ручное восстановление MFT&lt;br /&gt;
[[File:image_6.jpg]]&lt;br /&gt;
Рисунок 6. Ручное восстановление MFT. Подчеркнуты поля, подлежащие изменению.&lt;br /&gt;
&lt;br /&gt;
Коварный NT Explorer не позволяет редактировать поля в естественном режиме отображения, заставляя нас переключаться в HEX-mode и искать смещения всех значений самостоятельно. Найти заголовок атрибута $DATA очень просто - в его начале расположена последовательность 80 00 00 00 xx 00 00 00 01. В NTFS версии 3.0 она находится по смещению F8h от начала сектора. Поле Real Size во всех версиях NTFS располагается по смещению 30h относительно заголовка, а поля Allocated Size и Initialized Size, соответственно, по смещениям 28h/38h байт, причем значение Allocates Size должно быть кратно размеру кластера. Кстати, о кластерах. Убедитесь, что при переформатировании диска размер кластера не изменился, в противном случае у вас ничего не получится. Как восстановить исходный размер кластера? Да очень просто - набраться мужества и переформатировать восстанавливаемый диск с ключом /A:x, где x - размер кластера. А как его определить? Возьмем любой файл с известным содержимым и проанализируем его run-list. Пускаем контекстный поиск по всему диску, находим файл, запоминаем (записываем на бумажке) его стартовый сектор, после чего открываем закрепленный за ним FILE Record, декодируем run-list и вычисляем номер первого кластера. Делим номер сектора на номер кластера и получаем искомую величину.&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо сгенерировать новый run-list. В общем случае он будет выглядеть так: 13 XX XX XX YY 00, где XX XX XX - трехбайтовый размер $MFT в кластерах, а YY - стартовый кластер. Стартовый кластер обязательно должен указывать на первый кластер MFT, в противном случае chkdsk не сможет работать. Если новый run-list длиннее нынешнего (а именно так, скорее всего, и будет) необходимо скорректировать длину атрибутного заголовка (она расположена по смещению 04h от его начала). Проделав эту нехитрую операцию, запустим chkdsk с ключом /F и блаженно откинемся на спинку кресла, созерцая как возрождаются наши милые папки и файлы. Единственное, что не восстанавливается - так это дескрипторы безопасности: всем файлам/папкам назначаются права доступа по умолчанию. В остальном же с отремонтированным диском вполне можно работать, не опасаясь, что он рухнет окончательно. Файлы, ссылающиеся на несуществующие каталоги складываются в папку Found.xxx. Это &amp;quot;долгожители&amp;quot;, пережившие несколько циклов переформатирования, в буквальном смысле вытащенные с потустороннего света.&lt;br /&gt;
&lt;br /&gt;
Сложнее восстановить том, чей MFT сильно фрагментирован. Прежний run-list при форматировании был уничтожен, зеркальная копия также пострадала. Ничего другого не остается, как собирать все фрагменты руками. Звучит намного страшнее, чем выглядит. В отличии от всех остальных файлов диска, $MFT-файл имеет замечательную сигнатуру FILE, присутствующую в начале каждой файловой записи. Все, что нам нужно - последовательно сканируя раздел от первого кластера до последнего, выписать начало и конец каждого из фрагментов, принадлежащих MFT. Затем из этой цепочки необходимо исключить $MFTMirr. Его легко узнать - он расположен в середине раздела и содержит копии файловых записей $MFT, $MFTMirr, $LogFile и $Volume, причем $MFTMirr ссылается сам на себя. Допустим, наш список выглядит так: 08h - 333h, 669h - 966h, 1013 - 3210h. В грубом приближении ему будет соответствовать следующий run-list: 12 2B 03 08 22 23 03 69 96 22 FD 21 13 10 00. (Подробнее о кодировании/декодировании run-list'ов см. &amp;quot;Списки отрезков&amp;quot; в прошлой статье этого цикла).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;В грубом&amp;quot;, потому что мы не знаем, в какой последовательности располагались эти отрезки в файле (порядок расположения фрагментов на диске далеко не всегда совпадает с порядком отрезков в run-list'е). Что произойдет, если порядок сборки $MFT-файла окажется нарушен? А вот что - внутри MFT все файловые записи ссылаются друг на друга по своему порядковому номеру, представляющим индекс массива. Эти ссылки необходимы для восстановления структуры директорий, организации hard link'ов и еще кое-чего. Ссылки на материнский каталог дублируются в индексах и восстанавливаются элементарно. Hard link'и мрут безвозвратно (ну, разве что попробовать пересобрать $MFT-файл в другом порядке), но они практически нигде и никем не используются - как говорится, было бы что терять. По-настоящему туго приходится сильно фрагментированным файлам, занимающим несколько файловых записей, раскиданных по разным $MFT-фрагментам. Здесь выручает только перестановка фрагментов. К счастью, количество комбинаций обычно бывает невелико и процедура восстановления занимает совсем немного времени. Хорошая новость - начиная с NTFS версии 3.1 (соответствующей Windows XP) в MFT номера файловых записей хранятся в явном виде (четырехбайтовое поле, расположенное по смещению 2Ch от начала FILE Record), что делает задачу восстановления тривиальной.&amp;lt;br&amp;gt;Восстановление после тяжелых разрушений&lt;br /&gt;
&lt;br /&gt;
В результате сбоя содержимое дискового тома может стать недоступно операционной системе и при попытке чтения его оглавления будет выдаваться сообщения в стиле &amp;quot;Файл или папка повреждены. Чтение невозможно&amp;quot;, &amp;quot;Нет доступа к диску&amp;quot;, &amp;quot;Системе не удается найти логическое устройство&amp;quot; и т.д. Chkdsk говорит, что &amp;quot;Повреждена основная таблица файлов&amp;quot; и прекращает работу. Караул! Верните мой том! Пиво, водка и вобла гарантируется!&lt;br /&gt;
&lt;br /&gt;
Не паникуйте! Попробуйте запустить NT Explorer и посмотрите, что он покажет. Маловероятно, чтобы содержимое всего тома было утеряно целиком (это же что такое с ним нужно было сделать?!). Если хотя бы часть файловых записей уцелела, R-Studio/GetDataBack/EasyRecovery их обязательно восстановят!&lt;br /&gt;
&lt;br /&gt;
Анализ показывает, что основной причиной, по которой chkdsk отказывается проверять том, обычно становится порча файловой записи, описывающей $MFT. Если в процессе обновления $MFT внезапно отключить питание - такой исход событий вполне вероятен, особенно на жестких дисках с емким аппаратным кэшем - они не успевают завершить сохранение секторов на энергии, накопленной в конденсаторах, а вот их младшие собраться с этим справляются. То же самое происходит при неудачном перемещении $MFT файла или физическом разрушении первого MFT-сектора. Зеркальная копия $MFT во всех этих случаях остается цела, однако chkdsk по каким-то таинственным причинам не хочет ей пользоваться и вы должны восстановить ее самостоятельно. Просто скопируйте первый сектор $MFTMirr в первый сектор $MFT и громко скажите &amp;quot;ниндзя&amp;quot;! Поклонники Sector Inspector'а могут воспользоваться командным файлов следующего содержания.&lt;br /&gt;
&lt;br /&gt;
SECINSPECT.EXE -backup d: backup.dsk XXX 1&amp;lt;br&amp;gt;SECINSPECT.EXE -restore d: backup.dsk YYY CONFIRM&lt;br /&gt;
&lt;br /&gt;
Листинг 1. Командный файл для ручного восстановления $MFT из $MFTMirr, XXX - номер сектора $MFTMirr, YYY - номер сектора $MFT.&lt;br /&gt;
&lt;br /&gt;
Теперь можно смело пускать chkdsk. Если же он по-прежнему не работает, значит либо поврежден загрузочный сектор (а методику его восстановления мы уже обсуждали), либо run-list файла $MFT:$DATA не совпадает с истинным началом MFT (найдите сектор с файловой записью $MFT внутри и исправьте run-list), либо размер кластера, прописанный в boot-секторе отличается от его фактического размера (о том, как определять истинный размер кластера, мы уже только что говорили).&lt;br /&gt;
&lt;br /&gt;
Если же сбой был настолько серьезен, что вместе с $MFT пострадало и зеркало, задача сводится к восстановлению отформатированного диска. Кстати говоря, при тяжелых разрушениях файловой структуры, когда на диске образуется настоящий кавардак, восстановление тома полезно начинать с... его форматирования. Нет, это не первоапрельская шутка! Утилита format формирует заведомо исправные ключевые структуры, ну а подключение файловых записей - не проблема. Главное - сохраните run-list файла $MFT:$DATA, если, конечно, он еще уцелел. Все остальное - дело техники!&lt;br /&gt;
&lt;br /&gt;
Безуспешная попытка прочитать поврежденный том&lt;br /&gt;
[[File:image_7.jpg]]&lt;br /&gt;
Рисунок 7 Безуспешная попытка прочитать поврежденный том.&amp;lt;br&amp;gt;Восстановление NTFS-тома, отформатированного под FAT16/32&lt;br /&gt;
&lt;br /&gt;
При переформатировании диска, операционные системы семейства NT никогда не изменяют тип файловой системы (разве что попросить их это сделать явно), поэтому непреднамеренное форматирование NTFS раздела в FAT16/32 крайне маловероятно. Windows 9x/MS-DOS, напротив, любой диск стремятся отформатировать под FAT16/32, не замечая, что на нем что-то уже находится. Непреднамеренная порча NTFS-разделов при установке Windows 9x/MS-DOS поверх Windows NT - обычное дело, через которое проходит уже второе поколение пользователей.&lt;br /&gt;
&lt;br /&gt;
Стратегия спасения данных во всем похожа на восстановление NTFS-тома, отформатированного под NTFS, с той лишь разницей, что при создании таблицы размещения файлов (file allocation table) первые несколько тысяч файловых записей в MFT затираются безвозвратно (впрочем, их еще можно собрать руками, действуя по методике описанной в разделе &amp;quot;Разгребая кластерные обломки&amp;quot; предыдущей статьи этого цикла).&lt;br /&gt;
&lt;br /&gt;
Файлы с уцелевшей FILE RECORD легко восстанавливаются R-Studio/GetDataBack/EasyRecovery. Для ручного восстановления всего тома его необходимо заново отформатировать под NTFS, предварительно определив количество секторов в кластере. Далее действуем по плану - увеличиваем размер $MFT, пускаем chkdsk и собираем все, что только можно собрать. Поскольку количество файлов, хранящихся на современных дисках, зачастую исчисляется многими миллионами, потеря первой тысячи из них не так уж и страшна (если только по закону подлости это не будут самые ценные файлы).&amp;lt;br&amp;gt;Источники угрозы&lt;br /&gt;
&lt;br /&gt;
Почему погибают дисковые разделы? Ниже приводится список наиболее распространенных причини, отсортированный в порядке убывания их &amp;quot;популярности&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Ошибки оператора, вирусы, троянские программы;&lt;br /&gt;
&lt;br /&gt;
Отключение питания/зависание системы во время интенсивных дисковых операций, сопровождаемых обновлением MFT (например, удаление/добавление файлов или каталогов);&lt;br /&gt;
&lt;br /&gt;
Некорректное поведение различных дисковых утилит (Partition Magic, Ahead Nero, Norton Disk Doctor и т.д.);&lt;br /&gt;
&lt;br /&gt;
Физические дефекты оперативной памяти, приводящие к нарушению целостности дискового кэша и как следствие - порче самого диска;&lt;br /&gt;
&lt;br /&gt;
Некорректное поведение привилегированных драйверов, случайно или преднамеренно &amp;quot;залетающих&amp;quot; внутрь служебных структур NTFS-драйвера;&lt;br /&gt;
&lt;br /&gt;
Полезные советы - план превентивных действий по спасению данных&lt;br /&gt;
&lt;br /&gt;
Чтобы предотвратить разрушение тома и упростить задачу восстановления данных, рекомендуется заблаговременно выполнить следующий комплекс мероприятий:&lt;br /&gt;
&lt;br /&gt;
Переместите $MFT подальше от начала раздела. Первые секторы раздела, как показывает практика, самое небезопасное место. Во-первых, сюда стремятся вирусы (миф о невозможности прямого доступа к диску под NT всего лишь миф - читайте описание функции CreateFile и инструкцию на ASPI32-драйвер), во-вторых, некоторые утилиты (и, в частности, Ahead Nero) при некоторых обстоятельствах путают жесткий диск с оптическим накопителем, записывая образ не &amp;quot;туда&amp;quot;, а, значит, в первых ~700 Мбайтах физического диска (не логического тома!) не должно быть ничего ценного, в-третьих, если вы вдруг запустите WipeDisk или любую другую затирающую утилиту, первым погибнет именно $MFT, без которого весь дисковый том - просто груда мусора, в четвертых... да много разных причин можно найти. Просто переместите $MFT, вам что - трудно? Достаточно взять любой дефрагментатор, распространяющийся в исходных текстах (энтузиасты! ау! присоединяйтесь к проекту http://sourceforge.net/projects/opendefrag/) и слегка доработать его &amp;quot;напильником&amp;quot; под наши нужды. Естественно, валерьянка и резервная копия обязательно должны быть под рукой!&lt;br /&gt;
&lt;br /&gt;
Не допускайте фрагментации $MFT-файла! Не создавайте на диске огромного количества мелких файлов и не заполняйте его более чем на 90%. Стандартный дефрагментатор, входящий в комплект штатной поставки Windows 2000/XP, не позволяет дефрагментировать $MFT и приходится прибегать к сторонним средствам, лучшим из которых на мой взгляд является O&amp;amp;amp;O Defrag Pro от одноименной компании (www.oo-software.com). Это действительно профессиональный дефрагментатор, к тому же поддерживающий командную строку;&lt;br /&gt;
&lt;br /&gt;
Периодически создавайте резервную копию файловой записи $MFT - для этого достаточно сохранить один-единственный (!) сектор - первый сектор MFT, номер которого содержится в boot, только не забывайте его периодически обновлять, ведь при добавлении новых файлов/каталогов MFT планомерно расширяется и старые списки отрезков становятся все менее и менее актуальны;&lt;br /&gt;
&lt;br /&gt;
Нормальный дисковый том&lt;br /&gt;
[[File:image_8.jpg]]&lt;br /&gt;
Рисунок 8. Нормальный дисковый том (MFT, выделенный желтым цветом, расположен в начале раздела).&lt;br /&gt;
&lt;br /&gt;
Иммунизированный дисковый том&lt;br /&gt;
[[File:image_9.jpg]]&lt;br /&gt;
Рисунок 9. &amp;quot;Иммунизированный&amp;quot; дисковый том (MFT расположен в середине).&amp;lt;br&amp;gt;Заключение&lt;br /&gt;
&lt;br /&gt;
Наш затянувшийся разговор о восстановлении данных подходит к своему логическому концу, однако NTFS не стоит на месте, а интенсивно развирается. И хотя до сих пор эти изменения носили чисто косметический характер, в Windows Longhorn все обещает кардинальным образом измениться. Microsoft активно работает над новой файловой системой - Windows File System или сокращенно WinFS, сроки выхода которой, кстати говоря, постоянно переносятся (разработка файловой системы - это не шутка!).&lt;br /&gt;
&lt;br /&gt;
По словам вице-президента Microsoft Боба Маглиа, WinFS - это все та же NTFS, с прикрученным SQL и XML. Насколько изменятся базовые структуры файловой системы, общественности до сих пор неясно. И уж совсем непонятно, зачем NTFS понадобился реляционный SQL, когда эти возможности в нее закладывались изначально, просто их не успели доделать. Любой системный программист запросто напишет драйвер, принимающий SQL/XML запросы и транслирующий их в обращения к драйверу текущей файловой системы! Что-либо менять внутри NTFS совсем необязательно. Сдается мне, что это всего лишь очередной маркетинговый трюк, подталкивающих пользователей к переходу на ненавистный мне Longhorn!&lt;br /&gt;
&lt;br /&gt;
С другой стороны, развитие NTFS можно только приветствовать, поскольку оно дает пищу всем специалистам по восстановлению данных, ведь старые утилиты с новой файловой системой, скорей всего, окажутся несовместимы.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Unformat_ntfs&amp;diff=2063</id>
		<title>Unformat ntfs</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Unformat_ntfs&amp;diff=2063"/>
		<updated>2011-09-15T13:25:24Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: Created page with &amp;quot;[http://www.insidepro.com/kk/033/033r.shtml Оригинал] Unformat для NTFS &amp;amp;nbsp;Автор: (c)Крис Касперски ака мыщъх   ''Я у вас тут ви...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.insidepro.com/kk/033/033r.shtml Оригинал] Unformat для NTFS &amp;amp;nbsp;Автор: (c)Крис Касперски ака мыщъх &lt;br /&gt;
&lt;br /&gt;
''Я у вас тут винчестер недавно купил. Так вот, он сдох!&amp;lt;br&amp;gt;- Гарантия какая?&amp;lt;br&amp;gt;- Пожизненная.&amp;lt;br&amp;gt;- Раз сдох, значит гарантия кончилась.''&amp;lt;br&amp;gt;'''(разговор продавца с покупателем)'''&lt;br /&gt;
&lt;br /&gt;
Случилось самое страшное: вы потеряли весь NTFS-раздел целиком, случайно отформатировали или пережили разрушительный дисковый сбой. Где-то там остались миллиарды байт бесценных данных, теперь уже недоступных операционной системе. Как вернуть информацию к жизни? В этой статье автор делится советами ручного и автоматического восстановления.&lt;br /&gt;
&lt;br /&gt;
Введение&lt;br /&gt;
&lt;br /&gt;
До сих пор мы рассматривали лишь незначительные дисковые сбои и легкие разрушения данных типа ошибочно удаленных файлов. Теперь настал черед тяжелых повреждений, при которых прежнее содержимое тома становится недоступно операционной системе. Причиной может быть и непредумышленное форматирование, и искажение главной файловой таблицы, и... Но вы не падайте духом! Из любых переделок NTFS выходит с минимальными потерями (легендарная надежность, как-никак, на то она и NTFS, а не FAT) и во всех этих случаях возможно полное, стопроцентное восстановление данных, если к делу подойти с головой и прямыми руками.&lt;br /&gt;
&lt;br /&gt;
Проще всего начать с форматирования. Для экспериментов нам потребуется format.com, входящий в комплект штатной поставки Windows NT/2000/XP и дисковый раздел, не содержащий ничего полезного. Хорошо бы обзавестись виртуальной машиной - Virtual PC или VMWare, эмулирующей жесткий диск и ускоряющей процедуру форматирования в сотни (!) раз. А ведь время - не только деньги, но и бесцельно прожитые годы, проведенные за созерцанием индикатора прогресса...&lt;br /&gt;
&lt;br /&gt;
&amp;quot;Живой&amp;quot; винчестер лучше не трогать (во всяком случае до тех пор, пока вы не научитесь его восстанавливать). Если нет виртуальной машины (до сих пор не поставили Осла? не пользуетесь IRC?), попробуйте приобрести ZIP-привод (который, кстати говоря, намного надежнее оптических накопителей) и форматируйте дискеты под NTFS - благо штатный форматер это позволяет. С гибкими дисками (флопами) дело обстоит сложнее. По мнению Microsoft, их емкости недостаточно для размещения всех структур данных, хотя простейший расчет разбивает это утверждение в пух и прах, что утилита NTFSflp от Марка Руссиновича (mark@sysinternals.com), собственно говоря, и демонстрирует. Статья &amp;quot;NTFS Support for Floppy Disks&amp;quot; ([http://www.sysinternals.com/ntw2k/freeware/ntfsfloppy.shtml ntfsfloppy]) подробно описывает, как обхитрить систему, заставив ее отформатировать гибкий диск под NTFS (для этого вам потребуется soft-ice).&lt;br /&gt;
&lt;br /&gt;
Форматирование виртуального диска&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Рисунок 1. Форматирование виртуального диска в среде VMWare.&amp;lt;br&amp;gt;Что происходит при форматировании&lt;br /&gt;
&lt;br /&gt;
Форматирование диска - это сложная многостадийная операция, намного более сложная и намного более многостадийная, чем это может показаться на первый взгляд. Кто писал свой собственный форматер дискет (а в конце восьмидесятых-начале девяностых его писали практически все), тот поймет. Свои исследования мы начнем с изучения NTFS-тома, отформатированного под NTFS (техника восстановления NTFS-томов, отформатированных под FAT16/32 дана ниже).&lt;br /&gt;
&lt;br /&gt;
При выполнении команды &amp;quot;format X: /U /FS:NTFS&amp;quot; в файловой системе диска X: происходят следующие изменения (форматирование диска GUI-утилитой, вызываемой из контекстного меню &amp;quot;Проводника&amp;quot; осуществляется по аналогичной схеме):&lt;br /&gt;
&lt;br /&gt;
Формируется boot-сектор в формате NTFS;&lt;br /&gt;
&lt;br /&gt;
Генерируется новый серийный номер диска и записывается в boot-сектор по смещению 48h байт от его начала;&lt;br /&gt;
&lt;br /&gt;
Рассчитывается новая контрольная сумма boot-сектора и записывается по смещению 50h от его начала (подробнее см. первую статью этого цикла: &amp;quot;Загрузочный сектор - базовые концепции&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
Создается новый $MFT-файл, содержащий сведения обо всех файлах на диске и, как правило, размещаемый поверх старого $MFT-файла; исключения здесь крайне редки - разве что прежний $MFT был заблаговременно перемещен дефрагментатором или при форматировании назначен новый размер кластера. Во всех остальных случаях первые ~24 файловых записи (FILE Record) мрут безвозвратно. В них находится непосредственно сам $MFT, $MFTMirr, корневой каталог, /$LogFile - файл транзакций, /$BITMAP - карта свободного пространства, /$Secure - дескрипторы безопасности и другие служебные файлы;&lt;br /&gt;
&lt;br /&gt;
Инициируется $MFT:$DATA - назначается новая длина ($MFT:$30.AllocatedSize, $MFT:$30.RealSize, $MFT:$80.AllocatedSize, $MFT:$80.RealSize, $MFT:$80.CompressionSize, $MFT:$80.InitializedSize, $MFT:$80.LastVCN), дата/время создания/последней модификации ($MFT:$10.FileCreationTime, $MFT:$10.FileAlertedTime, $MFT:$10.FileReadTime, $MFT:$30.FileCreationTime, $MFT:$30.FileAlertedTime, $MFT:$30.MFTChangeTime, $MFT:$30.FileReadTime) и, самое главное, создается новый список отрезков (data-runs), необратимо затирающий старый, а это значит, что собирать фрагментированный $MFT нам придется по частям (эк, как тебя разворотило - укорял Василий Иванович Анку, в которую угодил артиллеристский снаряд);&lt;br /&gt;
&lt;br /&gt;
Создается новый /$MFT:$BITMAP, отвечающий за занятость файловых записей в MFT - все старые записи помечаются как свободные, однако их фактического удаления при этом не происходит (поле FileRecord.flags остается нетронутым), благодаря чему процедура восстановления заметно упрощается. Чаще всего $MFT:$BITMAP располагается на том же самом месте, что и старый (т.е. между boot-сектором и MFT), забивая прежнее содержимое нулями, однако с помощью утилиты chkdsk его можно восстановить;&lt;br /&gt;
&lt;br /&gt;
Создается новый /$BITMAP-файл, отвечающий за распределение дискового пространства (свободные и занятые кластера), опять-таки затирающий старый, но восстанавливаемый chkdsk'ом;&lt;br /&gt;
&lt;br /&gt;
Создается новый файл журнала транзакций - /$LogFile, в структуру которого мы углубляться все равно не будем, хотя в NTFS LINUX Project она описана достаточно подробно, но восстанавливать транзакции - это уж слишком; за восстановление транзакций нам никто не заплатит, так что нехай они идут лесом;&lt;br /&gt;
&lt;br /&gt;
В заголовок файловой записи $MFT заносится новый LogFile Sequence Number или, сокращенно, LSN;&lt;br /&gt;
&lt;br /&gt;
$MFT назначается новый номер последовательности обновления (Update Sequence Number);&lt;br /&gt;
&lt;br /&gt;
Создается новое зеркало $MFTMirr, необратимое затирающее старое (в текущих системах оно расположено посередине NTFS-раздела), в результате чего возникает резонный вопрос - на хрена нам зеркало, которое ничего не отражает?;&lt;br /&gt;
&lt;br /&gt;
Создаются новые /$Volume, /$AttrDef и другие служебные файлы, играющие сугубо вспомогательную роль и легко восстанавливаемые chkdsk'ом (хотя /$Volume и присутствует в зеркальной копии MFT, его ценность явно преувеличена);&lt;br /&gt;
&lt;br /&gt;
Осуществляется проверка целостности поверхности и все обнаруженные плохие кластеры заносятся в файл /$BadClus;&lt;br /&gt;
&lt;br /&gt;
Формируется новый корневой каталог;&lt;br /&gt;
&lt;br /&gt;
Если до форматирования тома на нем присутствовал /System Volume Information-файл, то он обновляется, в противном случае новый /System Volume Information создается только после перезагрузки;&lt;br /&gt;
&lt;br /&gt;
На самом деле процесс форматирования протекает намного сложнее, но не будем в него углубляться - мы же не форматер пишем! Интересующееся могут взять в руки IDA Pro и расковырять format.com самостоятельно. Подсказка - format.com содержит лишь высокоуровневую надстройку, опирающуюся на библиотеки ifsutil.dll, untfs.dll и... непосредственно сам драйвер файловой системы. Так что, дизассемблировать придется много. Чтобы упростить себе работу, можно пронаблюдать за процессом форматирования с помощью шпионских средств - утилит Марка Руссиновича FileMon и DiskMon, бесплатные копии которых можно скачать с www.sysinternals.com. Также не забывайте о точках останова на основные native-API функции такие как NtFsControlFile, NtDeviceIoControlFile и т.д. Да будет soft-ice вам в помощь!&lt;br /&gt;
&lt;br /&gt;
Исследование процесса форматирования&lt;br /&gt;
&lt;br /&gt;
Рисунок 2. Исследование процесса форматирования с помощью шпионских средств.&amp;lt;br&amp;gt;Автоматическое восстановление отформатированного диска&lt;br /&gt;
&lt;br /&gt;
Форматирование не уничтожает файловые записи пользовательских файлов и они могут быть полностью восстановлены. Спасением данных занимается множество утилит (R-Studio, EasyRecovery, GetDataBack и т.д.), однако прямых наследников unformat'а среди них как-то не наблюдается. Unformat восстанавливал весь том целиком, а эти - всего лишь &amp;quot;вытягивают&amp;quot; отдельные уцелевшие файлы/каталоги, переписывая их на новый носитель. Да где же нам его взять?! Запись на оптические накопители отпадает сразу - во-первых, для сохранения 80 - 120 Гбайтного жесткого диска в лучшем случае потребуется грузовик (на чем еще вы перевезете такое количество болванок?), во-вторых, непосредственная запись CD-R/RW не всегда возможна, ведь при крахе системы восстанавливающие утилиты приходится загружать с CD-ROM, а в большинстве компьютеров установлен только один оптический привод, и, в-третьих, ни одна известная мне утилита не позволяет &amp;quot;разрезать&amp;quot; большие файлы на несколько маленьких. Можно, конечно, перегнать данные по локальной сети (а она есть?) или установить дополнительный винчестер (корпус компьютера не опечатан, имеется свободные каналы контроллера и лишняя наличность в кармане). Но не слишком ли это хлопотно? Тем не менее, для &amp;quot;вытягивая&amp;quot; пары сотен особо ценных файлов такая методика вполне подходит.&lt;br /&gt;
&lt;br /&gt;
Продемонстрируем технику автоматического восстановления данных на примере утилиты R-Studio от компании R-TT Inc (www.r-tt.com). Это довольно мощный и в тоже время простой в управлении инструмент, на который можно положиться. После запуска утилиты мы сразу попадаем в окно &amp;quot;Drive View&amp;quot;, где перечислены все физические устройства и логические разделы. Находим среди них &amp;quot;свой&amp;quot; и, нажав правую клавишу мыши, говорим - &amp;quot;Scan&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Нас спрашивают про начальный сектор для сканирования (start), по умолчанию равный 0 - оставляем его без изменений. Размер сканируемой области (size) по умолчанию развертывается на весь раздел. Это гарантирует, что сканер обнаружит все уцелевшие файловые записи, хотя сам поиск займет значительное время. Можно ли ускорить этот процесс? Давайте возьмем ручку и подсчитаем. Допустим, восстанавливаемый раздел содержит сто тысяч файлов. Типичный размер файловой записи составляет 1 Кбайт. При условии, что $MFT не фрагментирован, достаточно просканировать всего ~100 Мбайт от начала раздела. Если эта величина не превышает 10% полной емкости тома (размер пространства, зарезервированного под MFT) и диск никогда не заполнялся более чем на 90%, то, скорее всего, все так и есть. В противном случае $MFT наверняка фрагментирован и живописно разбросан по всему диску. Впрочем, в случае ошибки мы ничем не рискуем. Вводим N Кбайт, где N - предполагаемое кол-во файлов (каталог также считается файлом) и выполняем сканирование - если один или несколько файлов останутся необнаруженными, возвращаемся к настройкам по умолчанию и повторяем процедуру сканирования вновь (если количество имеющихся файлов заранее неизвестно, вводим 10% от емкости тома). В поле File System выбираем файловую систему NTFS, сбрасывая галочки напротив двух остальных (FAT и Ext2FS), т.к. они нам ни к чему, и нажимам &amp;quot;Scan&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
R-Studio&lt;br /&gt;
&lt;br /&gt;
Рисунок 3. R-Studio осуществляет поиск уцелевших файловых записей.&lt;br /&gt;
&lt;br /&gt;
В процессе сканирования будут найдены все уцелевшие файлы (как удаленные, так и нет) и восстановлена структура директорий по корневой каталог включительно. Постойте! Как же так?! Ведь при форматировании он был уничтожен и сформирован заново! Хе-хе. Файловую систему NTFS можно уничтожить только динамитом. Как уже отмечалось, в отличии от FAT, в NTFS каталоги являются лишь вспомогательной структурой данных, проиндексированной для ускорения отображения их содержимого. Всякая файловая запись, независимо от своего происхождения, содержит ссылку на материнский каталог, представляющую собой номер записи в MFT. А запись корневого каталога всегда располагается по одному и тому же месту!&lt;br /&gt;
&lt;br /&gt;
Удаленные файловые записи могут ссылаться на уже уничтоженные каталоги. R-Studio складывает их в $$$FolderXXX, где XXX - порядковый номер директории. Иерархия подкаталогов в большинстве случаев успешно восстанавливается.&lt;br /&gt;
&lt;br /&gt;
Просмотр виртуального дерева обнаруженных файлов осуществляется нажатием кнопки &amp;amp;lt;F5&amp;amp;gt; или через одноименный пункт контекстного меню. Выбрав файл (или даже целый каталог с кучей подкаталогов) жмем &amp;amp;lt;F2&amp;amp;gt; или залезаем в предварительный просмотр/редактирование (пункт edit/view контекстного меню). Это достаточно мощный инструмент, отображающий внутреннее содержимое восстанавливаемого файла со всеми его атрибутами, списками отрезков и т.д. в &amp;quot;очеловеченном&amp;quot; формате, хотя до NT Exploder'а ему ох как далеко. При желании можно восстановить все файлы &amp;quot;за раз&amp;quot; (&amp;quot;Recovery All&amp;quot;), или выбрать восстановление по маске (Mask).&lt;br /&gt;
&lt;br /&gt;
Восстановленная структура директорий&lt;br /&gt;
&lt;br /&gt;
Рисунок 4. Восстановленная структура директорий.&lt;br /&gt;
&lt;br /&gt;
Хваленный Easy Recovery от Data Recovery Software вопреки своему названию простотой управления отнюдь не отличается и имеет довольно специфические особенности поведения. С настройками по умолчанию никаких файлов на отформатированном разделе он не увидит и чтобы заставить этого зверюгу заработать в Advanced Options (дополнительные опции), необходимо указать Ignore MFT (игнорировать MFT), но и в этом случае качество восстановления будет оставлять желать лучшего.&lt;br /&gt;
&lt;br /&gt;
Красивый интерфейс Easy Recovery&lt;br /&gt;
&lt;br /&gt;
Рисунок 5. Красивый интерфейс Easy Recovery - компенсация за низкое качество восстановления.&amp;lt;br&amp;gt;Ручное восстановление отформатированного диска&lt;br /&gt;
&lt;br /&gt;
Нашей целью будет ручное восстановление всего отформатированного раздела без использования дополнительных носителей информации и дорогостоящих утилит от сторонних производителей. Все, что потребуется - это любой редактор диска (предпочтительнее всего, конечно же, NT Explorer от Runtime Software, но на худой конец сойдет и бесплатный Disk Probe/Sector Inspector от Microsoft) и chkdsk.&lt;br /&gt;
&lt;br /&gt;
Очевидно, что в процессе форматирования происходит необратимое разрушение большого количества ключевых структур данных, восстанавливать которые вручную было бы слишком затруднительно. Да это, собственно, и не нужно! Идея состоит в том, чтобы вернуть разделу потерянные файловые записи, а все остальные ремонтные работы поручить chkdsk'у - пусть старается.&lt;br /&gt;
&lt;br /&gt;
Дизассемблирование показывает, что единственной структурой данных, без которой не может работать chkdsk, является атрибут $DATA файла $MFT. А раз так, все, что нам надо -воссоздать прежний $MFT:$DATA, разместив его поверх старых файловых записей. В простейшем случае (если $MFT:$DATA не фрагментирован) это достигается спекулятивным увеличением его длины. А как ее увеличить?&lt;br /&gt;
&lt;br /&gt;
Запускаем NT Explorer, переходим в начало MFT (Goto -&amp;amp;gt; Mft), щелкаем по $MFT файлу, находим атрибут $DATA (80h) и увеличиваем поля Allocated Size/Real Size/Compressed Size на требуемую величину, параллельно с этим корректируя список отрезков (он же run-list). Поле Last VCN трогать не нужно - chkdsk исправит его и сам. Как определить длину нефрагментированного MFT-файла? Она равна разнице номеров первого и последнего секторов, в начале которых присутствует сигнатура &amp;quot;FILE&amp;quot;, умноженная на 512 байт (исключая сектора, принадлежащие $MFTMirr) Известные мне дисковые редакторы не поддерживают поиска последнего вхождения, поэтому соответствующую утилиту приходится писать самостоятельно. Впрочем, точную длину MFT определять совершенно необязательно и вполне допустимо взять ее с запасом - лишнее все равно отсеет chkdsk. Действуйте по принципу - лучше перебрать, чем недобрать.&lt;br /&gt;
&lt;br /&gt;
Ручное восстановление MFT&lt;br /&gt;
&lt;br /&gt;
Рисунок 6. Ручное восстановление MFT. Подчеркнуты поля, подлежащие изменению.&lt;br /&gt;
&lt;br /&gt;
Коварный NT Explorer не позволяет редактировать поля в естественном режиме отображения, заставляя нас переключаться в HEX-mode и искать смещения всех значений самостоятельно. Найти заголовок атрибута $DATA очень просто - в его начале расположена последовательность 80 00 00 00 xx 00 00 00 01. В NTFS версии 3.0 она находится по смещению F8h от начала сектора. Поле Real Size во всех версиях NTFS располагается по смещению 30h относительно заголовка, а поля Allocated Size и Initialized Size, соответственно, по смещениям 28h/38h байт, причем значение Allocates Size должно быть кратно размеру кластера. Кстати, о кластерах. Убедитесь, что при переформатировании диска размер кластера не изменился, в противном случае у вас ничего не получится. Как восстановить исходный размер кластера? Да очень просто - набраться мужества и переформатировать восстанавливаемый диск с ключом /A:x, где x - размер кластера. А как его определить? Возьмем любой файл с известным содержимым и проанализируем его run-list. Пускаем контекстный поиск по всему диску, находим файл, запоминаем (записываем на бумажке) его стартовый сектор, после чего открываем закрепленный за ним FILE Record, декодируем run-list и вычисляем номер первого кластера. Делим номер сектора на номер кластера и получаем искомую величину.&lt;br /&gt;
&lt;br /&gt;
Теперь необходимо сгенерировать новый run-list. В общем случае он будет выглядеть так: 13 XX XX XX YY 00, где XX XX XX - трехбайтовый размер $MFT в кластерах, а YY - стартовый кластер. Стартовый кластер обязательно должен указывать на первый кластер MFT, в противном случае chkdsk не сможет работать. Если новый run-list длиннее нынешнего (а именно так, скорее всего, и будет) необходимо скорректировать длину атрибутного заголовка (она расположена по смещению 04h от его начала). Проделав эту нехитрую операцию, запустим chkdsk с ключом /F и блаженно откинемся на спинку кресла, созерцая как возрождаются наши милые папки и файлы. Единственное, что не восстанавливается - так это дескрипторы безопасности: всем файлам/папкам назначаются права доступа по умолчанию. В остальном же с отремонтированным диском вполне можно работать, не опасаясь, что он рухнет окончательно. Файлы, ссылающиеся на несуществующие каталоги складываются в папку Found.xxx. Это &amp;quot;долгожители&amp;quot;, пережившие несколько циклов переформатирования, в буквальном смысле вытащенные с потустороннего света.&lt;br /&gt;
&lt;br /&gt;
Сложнее восстановить том, чей MFT сильно фрагментирован. Прежний run-list при форматировании был уничтожен, зеркальная копия также пострадала. Ничего другого не остается, как собирать все фрагменты руками. Звучит намного страшнее, чем выглядит. В отличии от всех остальных файлов диска, $MFT-файл имеет замечательную сигнатуру FILE, присутствующую в начале каждой файловой записи. Все, что нам нужно - последовательно сканируя раздел от первого кластера до последнего, выписать начало и конец каждого из фрагментов, принадлежащих MFT. Затем из этой цепочки необходимо исключить $MFTMirr. Его легко узнать - он расположен в середине раздела и содержит копии файловых записей $MFT, $MFTMirr, $LogFile и $Volume, причем $MFTMirr ссылается сам на себя. Допустим, наш список выглядит так: 08h - 333h, 669h - 966h, 1013 - 3210h. В грубом приближении ему будет соответствовать следующий run-list: 12 2B 03 08 22 23 03 69 96 22 FD 21 13 10 00. (Подробнее о кодировании/декодировании run-list'ов см. &amp;quot;Списки отрезков&amp;quot; в прошлой статье этого цикла).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;В грубом&amp;quot;, потому что мы не знаем, в какой последовательности располагались эти отрезки в файле (порядок расположения фрагментов на диске далеко не всегда совпадает с порядком отрезков в run-list'е). Что произойдет, если порядок сборки $MFT-файла окажется нарушен? А вот что - внутри MFT все файловые записи ссылаются друг на друга по своему порядковому номеру, представляющим индекс массива. Эти ссылки необходимы для восстановления структуры директорий, организации hard link'ов и еще кое-чего. Ссылки на материнский каталог дублируются в индексах и восстанавливаются элементарно. Hard link'и мрут безвозвратно (ну, разве что попробовать пересобрать $MFT-файл в другом порядке), но они практически нигде и никем не используются - как говорится, было бы что терять. По-настоящему туго приходится сильно фрагментированным файлам, занимающим несколько файловых записей, раскиданных по разным $MFT-фрагментам. Здесь выручает только перестановка фрагментов. К счастью, количество комбинаций обычно бывает невелико и процедура восстановления занимает совсем немного времени. Хорошая новость - начиная с NTFS версии 3.1 (соответствующей Windows XP) в MFT номера файловых записей хранятся в явном виде (четырехбайтовое поле, расположенное по смещению 2Ch от начала FILE Record), что делает задачу восстановления тривиальной.&amp;lt;br&amp;gt;Восстановление после тяжелых разрушений&lt;br /&gt;
&lt;br /&gt;
В результате сбоя содержимое дискового тома может стать недоступно операционной системе и при попытке чтения его оглавления будет выдаваться сообщения в стиле &amp;quot;Файл или папка повреждены. Чтение невозможно&amp;quot;, &amp;quot;Нет доступа к диску&amp;quot;, &amp;quot;Системе не удается найти логическое устройство&amp;quot; и т.д. Chkdsk говорит, что &amp;quot;Повреждена основная таблица файлов&amp;quot; и прекращает работу. Караул! Верните мой том! Пиво, водка и вобла гарантируется!&lt;br /&gt;
&lt;br /&gt;
Не паникуйте! Попробуйте запустить NT Explorer и посмотрите, что он покажет. Маловероятно, чтобы содержимое всего тома было утеряно целиком (это же что такое с ним нужно было сделать?!). Если хотя бы часть файловых записей уцелела, R-Studio/GetDataBack/EasyRecovery их обязательно восстановят!&lt;br /&gt;
&lt;br /&gt;
Анализ показывает, что основной причиной, по которой chkdsk отказывается проверять том, обычно становится порча файловой записи, описывающей $MFT. Если в процессе обновления $MFT внезапно отключить питание - такой исход событий вполне вероятен, особенно на жестких дисках с емким аппаратным кэшем - они не успевают завершить сохранение секторов на энергии, накопленной в конденсаторах, а вот их младшие собраться с этим справляются. То же самое происходит при неудачном перемещении $MFT файла или физическом разрушении первого MFT-сектора. Зеркальная копия $MFT во всех этих случаях остается цела, однако chkdsk по каким-то таинственным причинам не хочет ей пользоваться и вы должны восстановить ее самостоятельно. Просто скопируйте первый сектор $MFTMirr в первый сектор $MFT и громко скажите &amp;quot;ниндзя&amp;quot;! Поклонники Sector Inspector'а могут воспользоваться командным файлов следующего содержания.&lt;br /&gt;
&lt;br /&gt;
SECINSPECT.EXE -backup d: backup.dsk XXX 1&amp;lt;br&amp;gt;SECINSPECT.EXE -restore d: backup.dsk YYY CONFIRM&lt;br /&gt;
&lt;br /&gt;
Листинг 1. Командный файл для ручного восстановления $MFT из $MFTMirr, XXX - номер сектора $MFTMirr, YYY - номер сектора $MFT.&lt;br /&gt;
&lt;br /&gt;
Теперь можно смело пускать chkdsk. Если же он по-прежнему не работает, значит либо поврежден загрузочный сектор (а методику его восстановления мы уже обсуждали), либо run-list файла $MFT:$DATA не совпадает с истинным началом MFT (найдите сектор с файловой записью $MFT внутри и исправьте run-list), либо размер кластера, прописанный в boot-секторе отличается от его фактического размера (о том, как определять истинный размер кластера, мы уже только что говорили).&lt;br /&gt;
&lt;br /&gt;
Если же сбой был настолько серьезен, что вместе с $MFT пострадало и зеркало, задача сводится к восстановлению отформатированного диска. Кстати говоря, при тяжелых разрушениях файловой структуры, когда на диске образуется настоящий кавардак, восстановление тома полезно начинать с... его форматирования. Нет, это не первоапрельская шутка! Утилита format формирует заведомо исправные ключевые структуры, ну а подключение файловых записей - не проблема. Главное - сохраните run-list файла $MFT:$DATA, если, конечно, он еще уцелел. Все остальное - дело техники!&lt;br /&gt;
&lt;br /&gt;
Безуспешная попытка прочитать поврежденный том&lt;br /&gt;
&lt;br /&gt;
Рисунок 7 Безуспешная попытка прочитать поврежденный том.&amp;lt;br&amp;gt;Восстановление NTFS-тома, отформатированного под FAT16/32&lt;br /&gt;
&lt;br /&gt;
При переформатировании диска, операционные системы семейства NT никогда не изменяют тип файловой системы (разве что попросить их это сделать явно), поэтому непреднамеренное форматирование NTFS раздела в FAT16/32 крайне маловероятно. Windows 9x/MS-DOS, напротив, любой диск стремятся отформатировать под FAT16/32, не замечая, что на нем что-то уже находится. Непреднамеренная порча NTFS-разделов при установке Windows 9x/MS-DOS поверх Windows NT - обычное дело, через которое проходит уже второе поколение пользователей.&lt;br /&gt;
&lt;br /&gt;
Стратегия спасения данных во всем похожа на восстановление NTFS-тома, отформатированного под NTFS, с той лишь разницей, что при создании таблицы размещения файлов (file allocation table) первые несколько тысяч файловых записей в MFT затираются безвозвратно (впрочем, их еще можно собрать руками, действуя по методике описанной в разделе &amp;quot;Разгребая кластерные обломки&amp;quot; предыдущей статьи этого цикла).&lt;br /&gt;
&lt;br /&gt;
Файлы с уцелевшей FILE RECORD легко восстанавливаются R-Studio/GetDataBack/EasyRecovery. Для ручного восстановления всего тома его необходимо заново отформатировать под NTFS, предварительно определив количество секторов в кластере. Далее действуем по плану - увеличиваем размер $MFT, пускаем chkdsk и собираем все, что только можно собрать. Поскольку количество файлов, хранящихся на современных дисках, зачастую исчисляется многими миллионами, потеря первой тысячи из них не так уж и страшна (если только по закону подлости это не будут самые ценные файлы).&amp;lt;br&amp;gt;Источники угрозы&lt;br /&gt;
&lt;br /&gt;
Почему погибают дисковые разделы? Ниже приводится список наиболее распространенных причини, отсортированный в порядке убывания их &amp;quot;популярности&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
Ошибки оператора, вирусы, троянские программы;&lt;br /&gt;
&lt;br /&gt;
Отключение питания/зависание системы во время интенсивных дисковых операций, сопровождаемых обновлением MFT (например, удаление/добавление файлов или каталогов);&lt;br /&gt;
&lt;br /&gt;
Некорректное поведение различных дисковых утилит (Partition Magic, Ahead Nero, Norton Disk Doctor и т.д.);&lt;br /&gt;
&lt;br /&gt;
Физические дефекты оперативной памяти, приводящие к нарушению целостности дискового кэша и как следствие - порче самого диска;&lt;br /&gt;
&lt;br /&gt;
Некорректное поведение привилегированных драйверов, случайно или преднамеренно &amp;quot;залетающих&amp;quot; внутрь служебных структур NTFS-драйвера;&lt;br /&gt;
&lt;br /&gt;
Полезные советы - план превентивных действий по спасению данных&lt;br /&gt;
&lt;br /&gt;
Чтобы предотвратить разрушение тома и упростить задачу восстановления данных, рекомендуется заблаговременно выполнить следующий комплекс мероприятий:&lt;br /&gt;
&lt;br /&gt;
Переместите $MFT подальше от начала раздела. Первые секторы раздела, как показывает практика, самое небезопасное место. Во-первых, сюда стремятся вирусы (миф о невозможности прямого доступа к диску под NT всего лишь миф - читайте описание функции CreateFile и инструкцию на ASPI32-драйвер), во-вторых, некоторые утилиты (и, в частности, Ahead Nero) при некоторых обстоятельствах путают жесткий диск с оптическим накопителем, записывая образ не &amp;quot;туда&amp;quot;, а, значит, в первых ~700 Мбайтах физического диска (не логического тома!) не должно быть ничего ценного, в-третьих, если вы вдруг запустите WipeDisk или любую другую затирающую утилиту, первым погибнет именно $MFT, без которого весь дисковый том - просто груда мусора, в четвертых... да много разных причин можно найти. Просто переместите $MFT, вам что - трудно? Достаточно взять любой дефрагментатор, распространяющийся в исходных текстах (энтузиасты! ау! присоединяйтесь к проекту http://sourceforge.net/projects/opendefrag/) и слегка доработать его &amp;quot;напильником&amp;quot; под наши нужды. Естественно, валерьянка и резервная копия обязательно должны быть под рукой!&lt;br /&gt;
&lt;br /&gt;
Не допускайте фрагментации $MFT-файла! Не создавайте на диске огромного количества мелких файлов и не заполняйте его более чем на 90%. Стандартный дефрагментатор, входящий в комплект штатной поставки Windows 2000/XP, не позволяет дефрагментировать $MFT и приходится прибегать к сторонним средствам, лучшим из которых на мой взгляд является O&amp;amp;amp;O Defrag Pro от одноименной компании (www.oo-software.com). Это действительно профессиональный дефрагментатор, к тому же поддерживающий командную строку;&lt;br /&gt;
&lt;br /&gt;
Периодически создавайте резервную копию файловой записи $MFT - для этого достаточно сохранить один-единственный (!) сектор - первый сектор MFT, номер которого содержится в boot, только не забывайте его периодически обновлять, ведь при добавлении новых файлов/каталогов MFT планомерно расширяется и старые списки отрезков становятся все менее и менее актуальны;&lt;br /&gt;
&lt;br /&gt;
Нормальный дисковый том&lt;br /&gt;
&lt;br /&gt;
Рисунок 8. Нормальный дисковый том (MFT, выделенный желтым цветом, расположен в начале раздела).&lt;br /&gt;
&lt;br /&gt;
Иммунизированный дисковый том&lt;br /&gt;
&lt;br /&gt;
Рисунок 9. &amp;quot;Иммунизированный&amp;quot; дисковый том (MFT расположен в середине).&amp;lt;br&amp;gt;Заключение&lt;br /&gt;
&lt;br /&gt;
Наш затянувшийся разговор о восстановлении данных подходит к своему логическому концу, однако NTFS не стоит на месте, а интенсивно развирается. И хотя до сих пор эти изменения носили чисто косметический характер, в Windows Longhorn все обещает кардинальным образом измениться. Microsoft активно работает над новой файловой системой - Windows File System или сокращенно WinFS, сроки выхода которой, кстати говоря, постоянно переносятся (разработка файловой системы - это не шутка!).&lt;br /&gt;
&lt;br /&gt;
По словам вице-президента Microsoft Боба Маглиа, WinFS - это все та же NTFS, с прикрученным SQL и XML. Насколько изменятся базовые структуры файловой системы, общественности до сих пор неясно. И уж совсем непонятно, зачем NTFS понадобился реляционный SQL, когда эти возможности в нее закладывались изначально, просто их не успели доделать. Любой системный программист запросто напишет драйвер, принимающий SQL/XML запросы и транслирующий их в обращения к драйверу текущей файловой системы! Что-либо менять внутри NTFS совсем необязательно. Сдается мне, что это всего лишь очередной маркетинговый трюк, подталкивающих пользователей к переходу на ненавистный мне Longhorn!&lt;br /&gt;
&lt;br /&gt;
С другой стороны, развитие NTFS можно только приветствовать, поскольку оно дает пищу всем специалистам по восстановлению данных, ведь старые утилиты с новой файловой системой, скорей всего, окажутся несовместимы.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Centos_Repo&amp;diff=2052</id>
		<title>Centos Repo</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Centos_Repo&amp;diff=2052"/>
		<updated>2011-07-07T20:38:31Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Додавання репозиторію RpmForge ==&lt;br /&gt;
 yum install yum-priorities&lt;br /&gt;
Дописати у .repo файли в /etc/yum.repos.d/ &lt;br /&gt;
 priority=N&lt;br /&gt;
&lt;br /&gt;
 [base], [addons], [updates], [extras] ... priority=1 &lt;br /&gt;
 [centosplus],[contrib] ... priority=2&lt;br /&gt;
 Third Party Repos such as rpmforge ... priority=N  (N &amp;gt; 10 )&lt;br /&gt;
&lt;br /&gt;
Качаємо пакет&lt;br /&gt;
&lt;br /&gt;
для i386 &lt;br /&gt;
 http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm&lt;br /&gt;
для x86_64&lt;br /&gt;
 http://apt.sw.be/redhat/el5/en/x86_64/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.x86_64.rpm&lt;br /&gt;
Ставимо ключ і пакет&lt;br /&gt;
 rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt&lt;br /&gt;
 rpm -i rpmforge-release-0.3.6-1.el5.rf.*.rpm&lt;br /&gt;
&lt;br /&gt;
== Додавання репозиторію EPEL ==&lt;br /&gt;
 rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm&lt;br /&gt;
Деталі тут http://fedoraproject.org/wiki/EPEL/FAQ#howtouse&lt;br /&gt;
&lt;br /&gt;
Набір репозиторіїв &lt;br /&gt;
[http://pkgs.org/ pkg.org]&lt;br /&gt;
[http://usefulthings.org.uk/category/reference/rpm/ Some RPMS]&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Fstab&amp;diff=2032</id>
		<title>Fstab</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Fstab&amp;diff=2032"/>
		<updated>2011-02-13T13:40:58Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Монтирование разделов по меткам в fstab (fstab mount linux label) ==&lt;br /&gt;
 &lt;br /&gt;
Оригинал: http://ru.gentoo-wiki.com/Fstab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Введение&lt;br /&gt;
--------&lt;br /&gt;
&lt;br /&gt;
   /etc/fstab  Конфигурационный  файл  с  указанием  партиции  и ее точки&lt;br /&gt;
   монтирования в структуре файловой системы.&lt;br /&gt;
&lt;br /&gt;
   Классическая  схема конфигурации на основе шины описана в статье О&lt;br /&gt;
   монтировании файловых систем&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Уникальные идентификаторы&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Уникальная идентификация партиции и точное указание точки монтирования&lt;br /&gt;
   стало  возможным  при наличии udev и имеет некоторое превосходство над&lt;br /&gt;
   обозначением по положению на шине ide/scsi.&lt;br /&gt;
&lt;br /&gt;
   Развитие  Linux  и  udev  увеличивает  надежность  опознания различных&lt;br /&gt;
   устройств, но в тоже время появляются новые проблемы.&lt;br /&gt;
&lt;br /&gt;
    1. Если  у  вас  больше  одного  sata/scsi или ide контроллера, то их&lt;br /&gt;
       обозначение  при  загрузке  будет  случайным.  В  результате после&lt;br /&gt;
       перезагрузки диск sdX может выглядеть как sdY или для ide дисков -&lt;br /&gt;
       hdX  и  hdY.  Уникальная идентификация позволяет забыть о подобных&lt;br /&gt;
       мелочах.&lt;br /&gt;
    2. Введение новой libata pata поддержки, все ваши ide hdX диски будут&lt;br /&gt;
       видны  как  sdX  устройства.  Уникальная  идентификация  дисков  и&lt;br /&gt;
       партиций позволит вам безболезненный переход.&lt;br /&gt;
    3. В  компьютерах с наличием sata и ide контроллеров переход от hdX к&lt;br /&gt;
       sdX   может   внести   путаницу,   которую   можно   избежать  при&lt;br /&gt;
       использовании идентификаторов.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Четыре схемы уникальной идентификации&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по UUID&lt;br /&gt;
&lt;br /&gt;
   UUID  это сокращение от слов Universally Unique IDentifier и описывает&lt;br /&gt;
   механизм  выдачи  каждой  файловой системе уникального идентификатора.&lt;br /&gt;
   Все файловые системы в линуксе, включая swap, поддерживают UUID. FAT и&lt;br /&gt;
   NTFS  не поддерживают UUID изначально, и тем не менее в линуксе им так&lt;br /&gt;
   же назначается UUID.&lt;br /&gt;
&lt;br /&gt;
        ls -al /dev/disk/by-uuid/&lt;br /&gt;
        total 0&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 2f6e40d0-83b5-42dc-a102-b95bc32073dc&lt;br /&gt;
         -&amp;gt; ../../sda1&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 84e7c2c9-f26e-4e3f-98b8-93eec152cd5a&lt;br /&gt;
         -&amp;gt; ../../hdc5&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 867a5afb-f266-4a85-900f-efcc86004370&lt;br /&gt;
         -&amp;gt; ../../sda3&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 9542be4e-fe40-4ca9-9522-f5222d32ac84&lt;br /&gt;
         -&amp;gt; ../../sdb1&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 b15f438d-b4b7-4536-a8cc-46128f440c7c&lt;br /&gt;
         -&amp;gt; ../../hdc6&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 AF92-3DDB -&amp;gt; ../../sdd1&lt;br /&gt;
        lrwxrwxrwx 1 root root 10 2007-04-24 18:01 B0JC190ODC193954 -&amp;gt; ../../sdd6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Как вы видите, FAT и NTFS разделы имеют укороченный идентификатор.&lt;br /&gt;
&lt;br /&gt;
   Для определения UUID так же можно воспользоватся командой&lt;br /&gt;
   &lt;br /&gt;
           tune2fs -l /dev/sda1 | grep UUID&lt;br /&gt;
   &lt;br /&gt;
           Filesystem UUID: 2f6e40d0-83b5-42dc-a102-b95bc32073dc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     * Преимущества  использования  UUID: уникальность каждого раздела по&lt;br /&gt;
       идентификатору позволяет избежать ошибок при монтировании.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
     * Недостаток использования UUID: трудно запомнить ;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по LABEL&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Практически  любой файловой системе или партиции можно присвоить LABEL&lt;br /&gt;
   (метку)&lt;br /&gt;
&lt;br /&gt;
           ls -l /dev/disk/by-label/&lt;br /&gt;
           total 0&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 250gig -&amp;gt; ../../sdb1&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 b00t -&amp;gt; ../../sda1&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 level0 -&amp;gt; ../../sda3&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 p2p -&amp;gt; ../../hdc6&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 swap -&amp;gt; ../../hdc5&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 fat -&amp;gt; ../../sdd1&lt;br /&gt;
           lrwxrwxrwx 1 root root 10 2007-04-24 18:01 ntfs -&amp;gt; ../../sdd6&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Посмотреть названия так же можно командой cfdisk /dev/sda&lt;br /&gt;
&lt;br /&gt;
   Для  изменения  label для каждой файловой системы выполните подходящие&lt;br /&gt;
   команды:&lt;br /&gt;
swap: Создание новой swap партиции:&lt;br /&gt;
               mkswap -L &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ext2/ext3:&lt;br /&gt;
               e2label /dev/XXX &amp;lt;label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
reiserfs:&lt;br /&gt;
               reiserfstune -l &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
jfs:&lt;br /&gt;
               jfs_tune -L &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
xfs:&lt;br /&gt;
               xfs_admin -L &amp;lt;label&amp;gt; /dev/XXX&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fat/vfat: Изменить метку диска в Windows, или при создании раздела в линуксе&lt;br /&gt;
&lt;br /&gt;
               mkdosfs -n &amp;lt;label&amp;gt; &amp;lt;other options&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
назначение метки диску &lt;br /&gt;
               tune2fs -L HOME /dev/sda1 &lt;br /&gt;
&lt;br /&gt;
ntfs: Изменить метку диска в Windows или&lt;br /&gt;
&lt;br /&gt;
               ntfslabel /dev/XXX &amp;lt;label&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Предупреждение: Будте внимательны при обозначении партиций. LABEL&lt;br /&gt;
   должен быть уникальным для каждого диска.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по id&lt;br /&gt;
&lt;br /&gt;
   В  данном  случае  id образуется из производственного серийного номера&lt;br /&gt;
   вашего диска.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Идентификация по path&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Создание  имени  по  кратчайшему  пути (path) в соответствии с sysfs и&lt;br /&gt;
   содежит  информацию  о шине на которой расположен жесткий диск. Что не&lt;br /&gt;
   подходит  для  наших  целей  и решения вышеобозначенных проблем. Более&lt;br /&gt;
   подробно в статье О монтировании файловых систем&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Использование уникальных идентификаторов&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Я   надеюсь   вы   уже   определились   какой  метод  вам  понравился.&lt;br /&gt;
   Использование данных методов достаточно просто.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
fstab&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   В  /etc/fstab  замените  обозначение  диска  в  первой  колонке на ваш&lt;br /&gt;
   идентификатор  к  примеру,  я закомментировал обозначение дисков по id&lt;br /&gt;
   знаком   #   и   записал   обозначение   двух   партиций   по   разным&lt;br /&gt;
   идентификационным схемам.&lt;br /&gt;
&lt;br /&gt;
        /etc/fstab&lt;br /&gt;
        #/dev/sda1   /boot           ext2            noauto,noatime           1 2&lt;br /&gt;
        LABEL=b00t   /boot           ext2            noauto,noatime           1 2&lt;br /&gt;
        #/dev/hdc5   none            swap            sw                       0 0&lt;br /&gt;
        UUID=84e7c2c9-f26e-4e3f-98b8-93eec152cd5a    none            swap sw  0 0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Так же можно заменить /dev/sda1 на /dev/disk/by-label/b00t или&lt;br /&gt;
   /dev/disk/by-uuid/2f6e40d0-83b5-42dc-a102-b95bc32073dc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
grub&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   Предупреждение: Данное описание -- для Arch Linux. В Gentoo надо&lt;br /&gt;
   использовать genkernel и работает только указание корня через LABEL=&lt;br /&gt;
   (на данный момент)&lt;br /&gt;
&lt;br /&gt;
   Для использования уникальных идентификаторов при загрузке необходимо:&lt;br /&gt;
    1. Использовать mkinitcpio initramfs образ&lt;br /&gt;
    2. Разрешить использование udev в /etc/mkinitcpio.conf&lt;br /&gt;
    3. Пересоздать initramfs образ до перезагрузки компьютера.&lt;br /&gt;
&lt;br /&gt;
   Примечание: В версиях klibc-udev до 101-3 уникальное обозначение&lt;br /&gt;
   устройств не работает&lt;br /&gt;
&lt;br /&gt;
   В  приведенном  выше  примере партиция /dev/sda3 LABEL=level0 является&lt;br /&gt;
   root партицией и в файле /boot/grub/menu.lst запись&lt;br /&gt;
   &lt;br /&gt;
   /boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
           kernel /boot/vmlinuz26 root=/dev/sda3 vga=0x318 ro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   надо поменять на&lt;br /&gt;
   /boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
           kernel /boot/vmlinuz root=/dev/disk/by-label/level0 vga=0x318 ro&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   или&lt;br /&gt;
   /boot/grub/menu.lst&lt;br /&gt;
&lt;br /&gt;
           kernel /boot/vmlinuz root=LABEL=level0 vga=0x318 ro&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=OpenVPN&amp;diff=2020</id>
		<title>OpenVPN</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=OpenVPN&amp;diff=2020"/>
		<updated>2010-10-02T06:38:30Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://openmaniak.com/ru/openvpn_tutorial.php Установка OPENVPN] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Настройка OpenVPN  ==&lt;br /&gt;
&lt;br /&gt;
 yum install openvpn&lt;br /&gt;
 cd /etc/openvpn/&lt;br /&gt;
 mkdir certs&lt;br /&gt;
 cd certs&lt;br /&gt;
 cp /usr/share/openvpn/easy-rsa/2.0/* /etc/openvpn/certs/&lt;br /&gt;
&lt;br /&gt;
Дописуємо свох дані в кіці файлу vars &lt;br /&gt;
&lt;br /&gt;
 . ../vars&lt;br /&gt;
 ./clean-all&lt;br /&gt;
&lt;br /&gt;
Будуємо сертифікат &lt;br /&gt;
&lt;br /&gt;
 ./build-ca&lt;br /&gt;
&lt;br /&gt;
Будуємо ключ для сервера &lt;br /&gt;
&lt;br /&gt;
 ./build-key-server server_name&lt;br /&gt;
&lt;br /&gt;
Будуємо ключ для клієнтів (на кожного клієнта по одному) &lt;br /&gt;
&lt;br /&gt;
 ./build-key client1 &lt;br /&gt;
&lt;br /&gt;
 ./build-dh&lt;br /&gt;
&lt;br /&gt;
Налаштування /etc/openvpn/server.conf &lt;br /&gt;
&amp;lt;pre&amp;gt;port 1194&lt;br /&gt;
proto udp&lt;br /&gt;
dev tun&lt;br /&gt;
ca /etc/openvpn/certs/keys/ca.crt&lt;br /&gt;
cert /etc/openvpn/certs/keys/CentOS.crt&lt;br /&gt;
key /etc/openvpn/certs/keys/CentOS.key  # This file should be kept secret&lt;br /&gt;
&lt;br /&gt;
dh /etc/openvpn/certs/keys/dh1024.pem&lt;br /&gt;
&lt;br /&gt;
server 172.16.51.0 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
ifconfig-pool-persist ipp.txt&lt;br /&gt;
;push &amp;quot;route 192.168.10.0 255.255.255.0&amp;quot;&lt;br /&gt;
;push &amp;quot;route 192.168.20.0 255.255.255.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
keepalive 10 120&lt;br /&gt;
&lt;br /&gt;
comp-lzo&lt;br /&gt;
;max-clients 100&lt;br /&gt;
&lt;br /&gt;
;user nobody&lt;br /&gt;
;group nobody&lt;br /&gt;
&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
status openvpn-status.log&lt;br /&gt;
&lt;br /&gt;
;log         openvpn.log&lt;br /&gt;
;log-append  openvpn.log&lt;br /&gt;
&lt;br /&gt;
verb 3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Налаштування клієнта&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
client&lt;br /&gt;
dev tun&lt;br /&gt;
proto udp&lt;br /&gt;
#proto tcp-client&lt;br /&gt;
#Change my.publicdomain.com to your public domain or IP address&lt;br /&gt;
remote 192.168.0.200 1194&lt;br /&gt;
resolv-retry infinite&lt;br /&gt;
nobind&lt;br /&gt;
persist-key&lt;br /&gt;
persist-tun&lt;br /&gt;
&lt;br /&gt;
ca ca2.crt&lt;br /&gt;
cert user.crt&lt;br /&gt;
key user.key&lt;br /&gt;
ns-cert-type server&lt;br /&gt;
&lt;br /&gt;
#DNS Options here, CHANGE THESE !!&lt;br /&gt;
#push &amp;quot;dhcp-option DNS 123.123.123.123&amp;quot;&lt;br /&gt;
#push &amp;quot;dhcp-option DNS 123.123.123.124&amp;quot;&lt;br /&gt;
comp-lzo&lt;br /&gt;
tun-mtu       1500&lt;br /&gt;
mssfix        1450&lt;br /&gt;
verb 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Заборонити клієнту доступ до сервера &lt;br /&gt;
 revoke-full &amp;lt;ім'я клієнта&amp;gt;&lt;br /&gt;
 cp keys/crl.pem /etc/openvpn/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Проблема openvpn в операционной системе Vista ==&lt;br /&gt;
&lt;br /&gt;
1. Для того чтобы клиент openvpn заработал в windows vista необходимо добавить в конфиг файл клиентской части следующие строки:&lt;br /&gt;
 route-method exe&lt;br /&gt;
 route-delay 2&lt;br /&gt;
&lt;br /&gt;
2. Затем нужно создать bat файл следующего содержания:&lt;br /&gt;
 &amp;quot;C:\Program Files\OpenVPN\bin\openvpn.exe&amp;quot; &amp;quot;полный_путь_до_конфига&amp;quot;&lt;br /&gt;
Для запуска VPN правой кнопкой мыши жмем на полученном bat файле и выбираем &amp;quot;Запустить как администратор&amp;quot;&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1994</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1994"/>
		<updated>2010-06-28T10:35:22Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1'&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;amp;lt;table name&amp;amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;amp;lt;table name&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1993</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1993"/>
		<updated>2010-06-28T10:34:45Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1'&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;amp;dt;table name&amp;amp;lt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE table name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1992</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1992"/>
		<updated>2010-06-28T10:34:11Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1'&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;&amp;lt;table name&amp;gt;&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;&amp;lt;table name&amp;gt;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1991</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1991"/>
		<updated>2010-06-28T10:33:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1'&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM table name&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE table name&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1990</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1990"/>
		<updated>2010-06-28T10:32:49Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1'&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1989</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1989"/>
		<updated>2010-06-28T10:32:31Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1'&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1988</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1988"/>
		<updated>2010-06-28T10:32:15Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1';&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1987</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1987"/>
		<updated>2010-06-28T10:31:57Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1';&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1986</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1986"/>
		<updated>2010-06-28T10:30:11Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1';&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1985</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1985"/>
		<updated>2010-06-28T10:29:50Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1';&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt; LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mysql&amp;diff=1984</id>
		<title>Mysql</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mysql&amp;diff=1984"/>
		<updated>2010-06-28T10:29:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ця система керування базами даних (СКБД) з відкритим кодом була створена як альтернатива комерційним системам. MySQL з самого початку була дуже схожою на mSQL, проте з часом вона все розширювалася і зараз MySQL — одна з найпоширеніших систем керування базами даних. Вона використовується, в першу чергу, для створення динамічних веб-сторінок, оскільки має чудову підтримку з боку різноманітних мов програмування.&lt;br /&gt;
&lt;br /&gt;
MySQL – компактний багатонитевий сервер баз даних. Характеризується великою швидкістю, стійкістю і простотою використання.&lt;br /&gt;
&lt;br /&gt;
MySQL був розроблений компанією «ТсХ» для підвищення швидкодії обробки великих баз даних.&lt;br /&gt;
&lt;br /&gt;
MySQL вважається гарним рішенням для малих і середніх застосунків. Вихідні коди сервера компілюються на багатьох платформах. Найповніше можливості сервера виявляються в UNІХ-системах, де є підтримка багатонитевості, що підвищує продуктивність системи в цілому.&lt;br /&gt;
Для некомерційного використання MySQL є безкоштовним. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Встановлення прав ==&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO user@'%' IDENTIFIED BY '1';&lt;br /&gt;
&lt;br /&gt;
== Швидкий дамп та швидке розгортання ==&lt;br /&gt;
 SELECT * INTO OUTFILE '/tmp/result.txt' FROM &amp;lt;table name&amp;gt;&lt;br /&gt;
 LOAD DATA INFILE '/tmp/result.txt' INTO TABLE &amp;lt;table name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Значення по замовчуванню&lt;br /&gt;
 FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\'&lt;br /&gt;
 LINES TERMINATED BY '\n' STARTING BY ''&lt;br /&gt;
&lt;br /&gt;
== Что нужно настроить в mySQL сразу после установки? ==&lt;br /&gt;
&lt;br /&gt;
Вольный перевод довольно старой статьи с MySQL Performance Blog о том, что лучше сразу же настроить после установки базовой версии mySQL.&lt;br /&gt;
&lt;br /&gt;
Удивительно, сколько народу устанавливает mySQL на свои сервера и оставляют его с настройками по умолчанию.&lt;br /&gt;
&lt;br /&gt;
Несмотря на то, что в mySQL существует довольно много настроек, которые Вы можете изменить, есть набор действительно очень важных характеристик, которые обязательно нужно оптимизировать под собственный сервер. Обычно после такой небольшой настройки производительность сервера заметно увеличивается.&lt;br /&gt;
&lt;br /&gt;
* key_buffer_size — крайне важная настройка при использовании MyISAM-таблиц. Установите её равной около 30-40% от доступной оперативной памяти, если используете только MyISAM. Правильный размер зависит от размеров индексов, данных и нагрузки на сервер — помните, что MyISAM использует кэш операционной системы (ОС), чтобы хранить данные, поэтому нужно оставить достаточно места в ОЗУ под данные, и данные могут занимать значительно больше места, чем индексы. Однако обязательно проверьте, чтобы всё место, отводимое директивой key_buffer_size под кэш, постоянно использовалось — нередко можно видеть ситуации, когда под кэш индексов отведено 4 ГБ, хотя общий размер всех .MYI-файлов не превышает 1 ГБ. Делать так совершенно бесполезно, Вы только потратите ресурсы. Если у Вас практически нет MyISAM-таблиц, то key_buffer_size следует выставить около 16-32 МБ — они будут использоваться для хранения в памяти индексов временных таблиц, создаваемых на диске.&lt;br /&gt;
* innodb_buffer_pool_size — не менее важная настройка, но уже для InnoDB, обязательно обратите на неё внимание, если собираетесь использовать в основном InnoDB-таблицы, т.к. они значительно более чувствительны к размеру буфера, чем MyISAM-таблицы. MyISAM-таблицы в принципе могут неплохо работать даже с большим количеством данных и при стандартном значении key_buffer_size, однако mySQL может сильно «тормозить» при неверном значении innodb_buffer_pool_size. InnoDB использует свой буфер для хранения и индексов, и данных, поэтому нет необходимости оставлять память под кэш ОС — устанавливайте innodb_buffer_pool_size в 70-80% доступной оперативной памяти (если, конечно, используются только InnoDB-таблицы). Относительно максимального размера данной опции — аналогично key_buffer_size — не стоит увлекаться, нужно найти оптимальный размер, найдите лучшее применение доступной памяти.&lt;br /&gt;
* innodb_additional_mem_pool_size — данная опция практически никак не влияет на производительность mySQL, однако рекомендую оставлять для InnoDB около 20 МБ (или чуть больше) под различные внутренние нужды.&lt;br /&gt;
* innodb_log_file_size — крайне важная настройка в условиях баз данных с частыми операциями записи в таблицы, в особенности при больших объёмах. Большие размеры увеличивают быстродействие, однако будьте осторожны — увеличится и время восстановления данных. Я обычно выставляю значение около 64-512 МБ в зависимости от размера сервера.&lt;br /&gt;
* innodb_log_buffer_size — стандартное значение данной опции вполне подойдёт для большинства систем со средним количеством операций записи и небольшими транзакциями. Если же в Вашей системе бывают всплески активности, или Вы активно работаете с BLOB-данными, то рекомендую немного увеличить значение innodb_log_buffer_size. Однако не переусердствуйте — слишком большое значение будет пустой тратой памяти: буфер сбрасывается каждую секунду, поэтому Вам не понадобится больше места, чем требуется в течение этой секунды. Рекомендуемое значение — около 8-16 МБ, а для небольших баз — и того меньше.&lt;br /&gt;
* innodb_flush_log_at_trx_commit — жалуетесь, что InnoDB работает в 100 раз медленнее MyISAM? Вероятно, Вы забыли про настройку innodb_flush_log_at_trx_commit. Значение по умолчанию «1» означает, что каждая UPDATE-транзакция (или аналогичная команда вне транзакции) должна сбрасывать буфер на диск, что достаточно ресурсоёмко. Большинство приложений, в особенности ранее использовавшие таблицы MyISAM, будут хорошо работать со значением «2» (т.е. «не сбрасывать буфер на диск, только в кэш ОС»). Лог, однако, всё равно будет сбрасываться на диск каждые 1-2 секунды, поэтому в случае аварии Вы потеряете максимум 1-2 секунды обновлений. Значение «0» повысит производительность, но Вы рискуете потерять данные даже при аварийной остановке mySQL-сервера, в то время как при установке значение innodb_flush_log_at_trx_commit в «2» Вы потеряете данные только при аварии всей операционной системы.&lt;br /&gt;
* table_cache — открытие таблиц может быть весьма ресурсоёмко. К примеру, MyISAM-таблицы помечают заголовки .MYI файлов как «используемые в текущий момент». Обычно не рекомендуется открывать таблицы слишком часто, поэтому лучше, чтобы кэш был достаточных размеров, чтобы держать все Ваши таблицы открытыми. Для этого используется некоторое количество ресурсов ОС и оперативной памяти, однако это обычно не является существенной проблемой для современных серверов. Если у Вас несколько сотен таблиц, то стартовым значением для опции table_cache может быть«1024» (помните, что каждое соединение требует свой собственный дескриптор). Если у Вас ещё больше таблиц или очень много соединений — увеличьте значение параметра. Я видел mySQL сервера со значением table_cache равной 100 000.&lt;br /&gt;
* thread_cache — создание/уничтожение потоков также является ресурсоёмкой операцией, которая происходит при каждой установке соединения и каждом разрыве соединения. Я обычно выставляю эту опцию равную 16. Если у Вашего приложения могут быть скачки количество конкурентных соединений и по переменной Threads_Created виден быстрый рост количества потоков, то стоит увеличить значение thread_cache. Цель — не допускать создания новых потоков в условиях нормального функционирования сервера.&lt;br /&gt;
* query_cache_size — если Ваше приложение много и часто читает данные, и при этом у Вас нет кэша на уровне приложения, эта опция может очень помочь. Не ставьте здесь слишком большое значение, так как обслуживание большого кэша запросов будет само по себе затратным. Рекомендуемое значение — от 32 до 512 МБ. Не забудьте проверить, насколько хорошо используется кэш запросов — в некоторых условиях (при небольшом количестве хитов в кэше, т.е. когда практически не выбираются одинаковые данные) использование большого кэша может ухудшить производительность.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Как Вы можете видеть, это — глобальные настройки. Эти переменные зависят от «железа» сервера и используемых движков mySQL, в то время как сессионные переменные обычно настраиваются специально под конкретные задачи. Если Вы в основном используете простые запросы, то нет никакой необходимости увеличивать значение sort_buffer_size, даже если у Вас есть лишние 64 ГБ оперативной памяти. Более того, большие значения кэшей могут только ухудшить производительность сервера. Сессионные переменные лучше оставить на потом, для тонкой настройки сервера.&lt;br /&gt;
&lt;br /&gt;
PS: инсталляция mySQL идёт с несколькими предустановленными файлами my.cnf, рассчитанными под разную нагрузку. Если Вам некогда настраивать сервер вручную, то обычно лучше использовать их, чем стандартный конфигурационный файл, выбрав тот, что больше подойдёт под нагрузку Вашего сервера.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=CentOS&amp;diff=1976</id>
		<title>CentOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=CentOS&amp;diff=1976"/>
		<updated>2010-04-30T17:10:58Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CentOS (Community ENTerprise Operating System) -- вільно доступний дистрибутив [[Лінукс]] на основі комерційного дистрибутиву Red Hat Enterprise Linux компанії Red Hat.&lt;br /&gt;
&lt;br /&gt;
 Проект доклав зусиль, щоб зібрати 100% двійково сумісний зі своїм предком дистрибутив у плані шляху його розвитку, і старається розвиватися з ним в один бік, не відступаючи від його основної лінії та модифікацій, щоб не змінювати своєї мети. &lt;br /&gt;
&lt;br /&gt;
Karanbir Singh is one of the core developers in the CentOS Project&lt;br /&gt;
&lt;br /&gt;
[http://twitter.com/centos Twitter]&lt;br /&gt;
&lt;br /&gt;
[http://www.karan.org Офіційний сайт]&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
== Додаткова інформація  ==&lt;br /&gt;
&lt;br /&gt;
Встановити для компіляції &lt;br /&gt;
&lt;br /&gt;
 yum groupinstall 'Development Tools'&lt;br /&gt;
 yum groupinstall 'Development Libraries'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Управління службами  ==&lt;br /&gt;
ntsysv&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=CentOS&amp;diff=1975</id>
		<title>CentOS</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=CentOS&amp;diff=1975"/>
		<updated>2010-04-30T17:10:43Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CentOS (Community ENTerprise Operating System) -- вільно доступний дистрибутив [[Лінукс]] на основі комерційного дистрибутиву Red Hat Enterprise Linux компанії Red Hat.&lt;br /&gt;
&lt;br /&gt;
 Проект доклав зусиль, щоб зібрати 100% двійково сумісний зі своїм предком дистрибутив у плані шляху його розвитку, і старається розвиватися з ним в один бік, не відступаючи від його основної лінії та модифікацій, щоб не змінювати своєї мети. &lt;br /&gt;
&lt;br /&gt;
Karanbir Singh is one of the core developers in the CentOS Project&lt;br /&gt;
[http://twitter.com/centos Twitter]&lt;br /&gt;
[http://www.karan.org Офіційний сайт]&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Додаткова інформація  ==&lt;br /&gt;
&lt;br /&gt;
Встановити для компіляції &lt;br /&gt;
&lt;br /&gt;
 yum groupinstall 'Development Tools'&lt;br /&gt;
 yum groupinstall 'Development Libraries'&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Управління службами  ==&lt;br /&gt;
ntsysv&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Linux&amp;diff=1974</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Linux&amp;diff=1974"/>
		<updated>2010-04-30T17:06:40Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Операційна система &lt;br /&gt;
&lt;br /&gt;
 [[Linux Шпаргалка]]&lt;br /&gt;
 [[ps]]&lt;br /&gt;
 [[Checkinstall]]&lt;br /&gt;
 [[Fstab]]&lt;br /&gt;
 [[Установить Linux по сети]]&lt;br /&gt;
 [[LDAP-configure]]&lt;br /&gt;
 [[Mail setting]]&lt;br /&gt;
 [[OpenSSL]]&lt;br /&gt;
 [[Centos Repo]]&lt;br /&gt;
 [[Centos multimedia]]&lt;br /&gt;
 [[Yum]]&lt;br /&gt;
 [[RPM]]&lt;br /&gt;
 [[Управління rpm]]&lt;br /&gt;
 [[Ssh]]&lt;br /&gt;
 [[SPF]]&lt;br /&gt;
 [[OpenVPN]]&lt;br /&gt;
 [[Nfs 3]]&lt;br /&gt;
 [[Nginx-as-reverse-proxy]]&lt;br /&gt;
 [[Ldap-errors]]&lt;br /&gt;
 [[DNS]]&lt;br /&gt;
 [[Iptables]]&lt;br /&gt;
 [[OpenLDAP]]&lt;br /&gt;
 [[Iptables]]&lt;br /&gt;
 [[Mod ssl]]&lt;br /&gt;
 [[SSL configure]]&lt;br /&gt;
 [[CentOS]]&lt;br /&gt;
 [[Php fastcgi]]&lt;br /&gt;
 [[Nginx Django]]&lt;br /&gt;
 [[Vim]]&lt;br /&gt;
 [[Захист SSH]]&lt;br /&gt;
 [[Install FTP Server]]&lt;br /&gt;
 [[Iftop]]&lt;br /&gt;
 [[Webmin]]&lt;br /&gt;
 [[Squid]]&lt;br /&gt;
 [[EraseDNS]]&lt;br /&gt;
 [[Rtorrent]]&lt;br /&gt;
 [[Довбана переключалка клавіатури в Linux]]&lt;br /&gt;
 [[Centos services]]&lt;br /&gt;
 [[Mini centos]]&lt;br /&gt;
 [[Ubuntu]]&lt;br /&gt;
 [[Trac]]&lt;br /&gt;
 [[Mc]]&lt;br /&gt;
 [[ZTEA2726]] Настройка 3G модема під Linux&lt;br /&gt;
 [[Virtualbox without gui]]&lt;br /&gt;
 [[Php-fpm]]&lt;br /&gt;
 [[Su]]&lt;br /&gt;
 [[PostgreSQL]]&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Windows&amp;diff=1886</id>
		<title>Windows</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Windows&amp;diff=1886"/>
		<updated>2009-10-30T21:16:40Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: Created page with 'Windows_boot'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Windows_boot]]&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Windows_boot&amp;diff=1885</id>
		<title>Windows boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Windows_boot&amp;diff=1885"/>
		<updated>2009-10-30T21:16:05Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Загрузка Windows ==&lt;br /&gt;
&lt;br /&gt;
[http://www.osp.ru/win2000/2003/01/175736/ Оригинал]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Посмотрим, какие стадии проходит Windows 2000 в процессе загрузки. &lt;br /&gt;
&lt;br /&gt;
После включения компьютера выполняется загрузка BIOS, которая проводит процедуру первоначального тестирования оборудования (POST), считывает запись Master Boot Record (MBR) и передает управление коду, содержащемуся в этой записи.Он выполняет проверку, ищет в корневом каталоге модуль ntldr и передает ему управление (MBR не может читать дерево подкаталогов, поэтому Ntldr всегда находится в корневом каталоге). &lt;br /&gt;
В свою очередь, Ntldr обрабатывает файл boot.ini, выводит на экран меню вариантов загрузки или, если вариант один, не дожидаясь выбора, переходит к следующему этапу. &lt;br /&gt;
На нем запускается 16-разрядное приложение ntdetect.com, которое получает информацию об оборудовании от BIOS и сохраняет ее во внутренних структурах. Затем ntldr выводит картинку — индикатор загрузки Windows 2000 — и предлагает нажать на F8. Действия операционной системы при выборе специальных вариантов загрузки по нажатию клавиши F8 мы здесь рассматривать не будем.&lt;br /&gt;
&lt;br /&gt;
Ntldr загружает ядро операционной системы и Hardware Abstraction Layer (HAL), которым, по умолчанию, соответствуют файлы Ntoskrnl.exe и HAL.dll. &lt;br /&gt;
Далее загружаются необходимые (помеченные флажком SERVICE_BOOT_START) драйверы устройств, описанные в файле SYSTEM, содержащем соответствующий раздел реестра. &lt;br /&gt;
После этого загрузчик производит действия, необходимые для запуска ntoskrnl.exe, и передает управление его главной функции. Здесь происходит много всяких, во-первых, сложных и, во-вторых, не представляющих сейчас для нас интереса событий. Но в числе прочего создается процесс Smss, который формирует среду пользовательского режима. Smss запускает подсистему Win32, программы, перечисленные в HKLM\SYSTEM\CurrentControlSet\ Control\Session Manager\BootExecute, инициализирует реестр, переменные окружения и другие «мелочи» и, наконец, запускает процесс Winlogon.&lt;br /&gt;
&lt;br /&gt;
Далее ответственность за дальнейшую инициализацию системы ложится на Winlogon. Он формирует объект WindowStation и три рабочих стола — пользовательский, хранителя экрана и Winlogon; загружает GINA DLL (!), создает процесс диспетчера управления службами (SCM), загружает все службы и драйверы устройств, помеченные для автоматического запуска, и запускает процесс Lsass. После того как пользователь успешно зарегистрировался, а SCM запустил службы и драйверы, загрузка считается успешно завершенной, и LastKnownGood обновляется в соответствии с текущими установками.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Windows_boot&amp;diff=1884</id>
		<title>Windows boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Windows_boot&amp;diff=1884"/>
		<updated>2009-10-30T21:13:57Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Загрузка Windows ==&lt;br /&gt;
&lt;br /&gt;
[http://www.osp.ru/win2000/2003/01/175736/ Оригинал]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Посмотрим, какие стадии проходит Windows 2000 в процессе загрузки (подробнее об этом рассказано в [1]). После включения компьютера выполняется загрузка BIOS, которая проводит процедуру первоначального тестирования оборудования (POST), считывает запись Master Boot Record (MBR) и передает управление коду, содержащемуся в этой записи. Он выполняет проверку, ищет в корневом каталоге модуль ntldr и передает ему управление (MBR не может читать дерево подкаталогов, поэтому Ntldr всегда находится в корневом каталоге). В свою очередь, Ntldr обрабатывает файл boot.ini, выводит на экран меню вариантов загрузки или, если вариант один, не дожидаясь выбора, переходит к следующему этапу. На нем запускается 16-разрядное приложение ntdetect.com, которое получает информацию об оборудовании от BIOS и сохраняет ее во внутренних структурах. Затем ntldr выводит картинку — индикатор загрузки Windows 2000 — и предлагает нажать на F8. Действия операционной системы при выборе специальных вариантов загрузки по нажатию клавиши F8 мы здесь рассматривать не будем.&lt;br /&gt;
&lt;br /&gt;
Ntldr загружает ядро операционной системы и Hardware Abstraction Layer (HAL), которым, по умолчанию, соответствуют файлы Ntoskrnl.exe и HAL.dll. Далее загружаются необходимые (помеченные флажком SERVICE_BOOT_START) драйверы устройств, описанные в файле SYSTEM, содержащем соответствующий раздел реестра. После этого загрузчик производит действия, необходимые для запуска ntoskrnl.exe, и передает управление его главной функции. Здесь происходит много всяких, во-первых, сложных и, во-вторых, не представляющих сейчас для нас интереса событий. Но в числе прочего создается процесс Smss, который формирует среду пользовательского режима. Smss запускает подсистему Win32, программы, перечисленные в HKLM\SYSTEM\CurrentControlSet\ Control\Session Manager\BootExecute, инициализирует реестр, переменные окружения и другие «мелочи» и, наконец, запускает процесс Winlogon.&lt;br /&gt;
&lt;br /&gt;
Далее ответственность за дальнейшую инициализацию системы ложится на Winlogon. Он формирует объект WindowStation и три рабочих стола — пользовательский, хранителя экрана и Winlogon; загружает GINA DLL (!), создает процесс диспетчера управления службами (SCM), загружает все службы и драйверы устройств, помеченные для автоматического запуска, и запускает процесс Lsass. После того как пользователь успешно зарегистрировался, а SCM запустил службы и драйверы, загрузка считается успешно завершенной, и LastKnownGood обновляется в соответствии с текущими установками.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Windows_boot&amp;diff=1883</id>
		<title>Windows boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Windows_boot&amp;diff=1883"/>
		<updated>2009-10-30T21:13:45Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: Created page with ' == Загрузка Windows ==   [http://www.osp.ru/win2000/2003/01/175736/ Оригинал]   Посмотрим, какие стадии проходит Windows 2000 в пр...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Загрузка Windows ==&lt;br /&gt;
&lt;br /&gt;
 [http://www.osp.ru/win2000/2003/01/175736/ Оригинал]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Посмотрим, какие стадии проходит Windows 2000 в процессе загрузки (подробнее об этом рассказано в [1]). После включения компьютера выполняется загрузка BIOS, которая проводит процедуру первоначального тестирования оборудования (POST), считывает запись Master Boot Record (MBR) и передает управление коду, содержащемуся в этой записи. Он выполняет проверку, ищет в корневом каталоге модуль ntldr и передает ему управление (MBR не может читать дерево подкаталогов, поэтому Ntldr всегда находится в корневом каталоге). В свою очередь, Ntldr обрабатывает файл boot.ini, выводит на экран меню вариантов загрузки или, если вариант один, не дожидаясь выбора, переходит к следующему этапу. На нем запускается 16-разрядное приложение ntdetect.com, которое получает информацию об оборудовании от BIOS и сохраняет ее во внутренних структурах. Затем ntldr выводит картинку — индикатор загрузки Windows 2000 — и предлагает нажать на F8. Действия операционной системы при выборе специальных вариантов загрузки по нажатию клавиши F8 мы здесь рассматривать не будем.&lt;br /&gt;
&lt;br /&gt;
Ntldr загружает ядро операционной системы и Hardware Abstraction Layer (HAL), которым, по умолчанию, соответствуют файлы Ntoskrnl.exe и HAL.dll. Далее загружаются необходимые (помеченные флажком SERVICE_BOOT_START) драйверы устройств, описанные в файле SYSTEM, содержащем соответствующий раздел реестра. После этого загрузчик производит действия, необходимые для запуска ntoskrnl.exe, и передает управление его главной функции. Здесь происходит много всяких, во-первых, сложных и, во-вторых, не представляющих сейчас для нас интереса событий. Но в числе прочего создается процесс Smss, который формирует среду пользовательского режима. Smss запускает подсистему Win32, программы, перечисленные в HKLM\SYSTEM\CurrentControlSet\ Control\Session Manager\BootExecute, инициализирует реестр, переменные окружения и другие «мелочи» и, наконец, запускает процесс Winlogon.&lt;br /&gt;
&lt;br /&gt;
Далее ответственность за дальнейшую инициализацию системы ложится на Winlogon. Он формирует объект WindowStation и три рабочих стола — пользовательский, хранителя экрана и Winlogon; загружает GINA DLL (!), создает процесс диспетчера управления службами (SCM), загружает все службы и драйверы устройств, помеченные для автоматического запуска, и запускает процесс Lsass. После того как пользователь успешно зарегистрировался, а SCM запустил службы и драйверы, загрузка считается успешно завершенной, и LastKnownGood обновляется в соответствии с текущими установками.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Linux&amp;diff=1882</id>
		<title>Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Linux&amp;diff=1882"/>
		<updated>2009-10-23T21:15:44Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Операційна система &lt;br /&gt;
&lt;br /&gt;
 [[Linux Шпаргалка]]&lt;br /&gt;
 [[Checkinstall]]&lt;br /&gt;
 [[Fstab]]&lt;br /&gt;
 [[Установить Linux по сети]]&lt;br /&gt;
 [[LDAP-configure]]&lt;br /&gt;
 [[Mail setting]]&lt;br /&gt;
 [[OpenSSL]]&lt;br /&gt;
 [[Centos Repo]]&lt;br /&gt;
 [[Centos multimedia]]&lt;br /&gt;
 [[Yum]]&lt;br /&gt;
 [[RPM]]&lt;br /&gt;
 [[Управління rpm]]&lt;br /&gt;
 [[Ssh]]&lt;br /&gt;
 [[SPF]]&lt;br /&gt;
 [[OpenVPN]]&lt;br /&gt;
 [[Nfs 3]]&lt;br /&gt;
 [[Nginx-as-reverse-proxy]]&lt;br /&gt;
 [[Ldap-errors]]&lt;br /&gt;
 [[DNS]]&lt;br /&gt;
 [[Iptables]]&lt;br /&gt;
 [[OpenLDAP]]&lt;br /&gt;
 [[Iptables]]&lt;br /&gt;
 [[Mod ssl]]&lt;br /&gt;
 [[SSL configure]]&lt;br /&gt;
 [[СentOS]]&lt;br /&gt;
 [[Php fastcgi]]&lt;br /&gt;
 [[Nginx Django]]&lt;br /&gt;
 [[Vim]]&lt;br /&gt;
 [[Захист SSH]]&lt;br /&gt;
 [[Install FTP Server]]&lt;br /&gt;
 [[Iftop]]&lt;br /&gt;
 [[Webmin]]&lt;br /&gt;
 [[Squid]]&lt;br /&gt;
 [[EraseDNS]]&lt;br /&gt;
 [[Rtorrent]]&lt;br /&gt;
 [[Довбана переключалка клавіатури в Linux]]&lt;br /&gt;
 [[Centos services]]&lt;br /&gt;
 [[Mini centos]]&lt;br /&gt;
 [[Ubuntu]]&lt;br /&gt;
 [[Trac]]&lt;br /&gt;
 [[Mc]]&lt;br /&gt;
 [[ZTEA2726]] Настройка 3G модема під Linux&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mc&amp;diff=1881</id>
		<title>Mc</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mc&amp;diff=1881"/>
		<updated>2009-10-23T21:15:22Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: Created page with '== Midnight commander. ==  Запустим mc и будем настраивать его так, как я считаю нужным.  Прежде всего зайдем в ...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Midnight commander. ==&lt;br /&gt;
&lt;br /&gt;
Запустим mc и будем настраивать его так, как я считаю нужным. &lt;br /&gt;
Прежде всего зайдем в меню F9 и в Options поставим в Display Bits поддержку 8bit символов на входе и выходе. Опять в Options-&amp;gt;Layout:&lt;br /&gt;
&lt;br /&gt;
Убрать menubar visible (экранное пространство очень дорого чтобы там валялась бестолковая строчка с меню)&lt;br /&gt;
&lt;br /&gt;
Убрать keybar visible (по тем же соображениям, кнопки все надо помнить наизусть!)&lt;br /&gt;
&lt;br /&gt;
Включить hintbar visible (там будет показано много интересного)&lt;br /&gt;
&lt;br /&gt;
Запишите все опции. Теперь mc принял приемлемый вид.&lt;br /&gt;
Понятно что просмотр содержимого каталогов сразу по входу в них - это очень удобно. &lt;br /&gt;
Не надо все время давить ls -la для просмотра состояния каталога. Все показано к тому же в удобоваримом виде.&lt;br /&gt;
&lt;br /&gt;
Какие кнопки давить?&lt;br /&gt;
&lt;br /&gt;
 Insert - отмечать файлы и каталоги&lt;br /&gt;
 Ctrl-ENTER (ESC+ENTER или Alt-ENTER) - послать текущий об'ект в командную строку&lt;br /&gt;
 Ctrl-X+T - послать выделенные об'екты в командную строку&lt;br /&gt;
 Alt-p (ESC+p) - вернуть предыдущую (предыдущие) командную строку (строки)&lt;br /&gt;
 Alt-n (ESC+n) - вернуть последующую (последующие) командную строку (строки)&lt;br /&gt;
 Ctrl-\ - hotlist (для частоиспользуемых директорий)&lt;br /&gt;
 Shift-F3 - просмотр файла (raw/ без учета расширения)&lt;br /&gt;
 Shift-F4 - создать новый файл&lt;br /&gt;
 F12 - Save as&lt;br /&gt;
 Ctrl-O - погасить панели и посмотреть что под ними (работает ТОЛЬКО в linux!)&lt;br /&gt;
 здесь же можно поработать в shell'e.&lt;br /&gt;
 Если при включенных панелях у вас не запускается ничего и выдается&lt;br /&gt;
 ошибка &amp;quot;The shell is already running a command&amp;quot; - это значит что нужно&lt;br /&gt;
 освободить шелл. Погасите снова панели и нажмите ENTER пару раз.&lt;br /&gt;
 Ctrl-S - поиск файла&lt;br /&gt;
 Сtrl-X+A - текущие VFS (ftp и пр.)&lt;br /&gt;
 Ctrl-X+C - посмотреть/поменять permissions&lt;br /&gt;
 Ctrl-X+O - посмотреть/поменять owner&lt;br /&gt;
 Ctrl-X+L - создать link&lt;br /&gt;
 Ctrl-X+S - создать symlink&lt;br /&gt;
 Ctrl-X+Ctrl-S - редактировать symlink&lt;br /&gt;
 Ctrl-X+D - сравнить каталоги&lt;br /&gt;
 Ctrl-X+J - фоновые задачи&lt;br /&gt;
 Ctrl-X+Q - быстрый просмотр содержимого файла&lt;br /&gt;
 &lt;br /&gt;
 ESC+A - послать в ком.строку текущий каталог&lt;br /&gt;
 ESC+C - быстро сменить каталог&lt;br /&gt;
 ESC+H - history&lt;br /&gt;
 ESC+P - вернуть предыдущую (предыдущие) командную строку (строки)&lt;br /&gt;
 ESC+N - вернуть последующую (последующие) командную строку (строки)&lt;br /&gt;
 ESC+S - поиск файла (в текущей директории)&lt;br /&gt;
 ESC+? - раширенный поиск фала (или вхождения/regular expression)&lt;br /&gt;
 ESC+цифра - тоже что и F{цифра} (ESC+5 = F5)&lt;br /&gt;
 &lt;br /&gt;
 F4 (в редакторе) - поиск с заменой&lt;br /&gt;
 F6 (в редакторе) - поиск с помощью регулярного выражения&lt;br /&gt;
 Shift-Del (в редакторе) - удалить блок (и положить его в clipboard)&lt;br /&gt;
 Shift-Ins (в редакторе) - вставить блок из clipboard (работает даже в другой консоли!!!) &lt;br /&gt;
 Можно редактировать два и более файлов на разных консолях и гонять блоки между ними.&lt;br /&gt;
&lt;br /&gt;
 Alt-TAB (ESC+TAB) - Крутейшая кнопка для поиска загружаемых файлов (например вы забыли как полностью пишется netcfg. &lt;br /&gt;
 Достаточно набрать в командной строке net и нажать   Alt-TAB - вам сразу покажут что можно запустить, &lt;br /&gt;
 которое начинается со слова net) нажимать два раза!&lt;br /&gt;
 Alt-TAB (ESC+TAB) - работает так же как в Bash TAB (т.е. подгоняет по первым буквам имена файлов или директорий. &lt;br /&gt;
 Наберите cd /u потом Alt-TAB - сразу будет cd /usr/ и т.д.)&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1457</id>
		<title>SSL configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1457"/>
		<updated>2009-03-24T19:00:28Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка Certificate Authority (CA) using OpenSSL ==&lt;br /&gt;
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]&lt;br /&gt;
&lt;br /&gt;
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им  запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.&lt;br /&gt;
&lt;br /&gt;
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конфигурироание OpenSSL ==&lt;br /&gt;
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом:&lt;br /&gt;
обратите внимание на выделенное &lt;br /&gt;
 &lt;br /&gt;
 [ CA_default ]&lt;br /&gt;
 &lt;br /&gt;
 dir             = /etc/pki/CA           # Where everything is kept&lt;br /&gt;
 certs           = $dir/certs            # Where the issued certs are kept&lt;br /&gt;
 crl_dir         = $dir/crl              # Where the issued crl are kept&lt;br /&gt;
 database        = $dir/'''index.txt'''        # database index file.&lt;br /&gt;
 unique_subject  = no                    # Set to 'no' to allow creation of&lt;br /&gt;
                                         # several ctificates with same subject.&lt;br /&gt;
 new_certs_dir   = $dir/'''newcerts'''         # default place for new certs.&lt;br /&gt;
 &lt;br /&gt;
 certificate     = $dir/'''cacert.pem'''       # The CA certificate&lt;br /&gt;
 serial          = $dir/'''serial'''           # The current serial number&lt;br /&gt;
 #crlnumber      = $dir/crlnumber        # the current crl number must be&lt;br /&gt;
                                        # commented out to leave a V1 CRL&lt;br /&gt;
 crl             = $dir/crl.pem          # The current CRL&lt;br /&gt;
 private_key     = $dir/private/'''cakey.pem'''# The private key&lt;br /&gt;
 RANDFILE        = $dir/private/.rand    # private random number file&lt;br /&gt;
 &lt;br /&gt;
 x509_extensions = usr_cert              # The extentions to add to the cert&lt;br /&gt;
 &lt;br /&gt;
 # Comment out the following two lines for the &amp;quot;traditional&amp;quot;&lt;br /&gt;
 # (and highly broken) format.&lt;br /&gt;
 name_opt        = ca_default            # Subject Name options&lt;br /&gt;
 cert_opt        = ca_default            # Certificate field options&lt;br /&gt;
 &lt;br /&gt;
 # Extension copying option: use with caution.&lt;br /&gt;
 # copy_extensions = copy&lt;br /&gt;
 &lt;br /&gt;
 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs&lt;br /&gt;
 # so this is commented out by default to leave a V1 CRL.&lt;br /&gt;
 # crlnumber must also be commented out to leave a V1 CRL.&lt;br /&gt;
 # crl_extensions        = crl_ext&lt;br /&gt;
 &lt;br /&gt;
 default_days    = 365                   # how long to certify for&lt;br /&gt;
 default_crl_days= 30                    # how long before next CRL&lt;br /&gt;
 default_md      = sha1                  # which md to use.&lt;br /&gt;
 preserve        = no                    # keep passed DN ordering&lt;br /&gt;
 &lt;br /&gt;
 # A few difference way of specifying how similar the request should look&lt;br /&gt;
 # For type CA, the listed attributes must be the same, and the optional&lt;br /&gt;
 # and supplied fields are just that.&lt;br /&gt;
 policy          = policy_match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создание Certificate Authority (CA) ==&lt;br /&gt;
&lt;br /&gt;
Этим шагом мы создадим '''CA private key''' приватный ключ  и самоподписываемый the '''CA certificate''' сертификат .&lt;br /&gt;
Сертификат '''CA certificate''' будет сохранен в '''/etc/pki/CA/cacert.pem''', тогда как '''CA private key''' будет сохранен в '''/etc/pki/CA/private/cakey.pem''':&lt;br /&gt;
 '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem'''&lt;br /&gt;
 '''chmod 600 /etc/pki/CA/private/cakey.pem'''&lt;br /&gt;
&lt;br /&gt;
копия каждого подписанного сертификата будет сохранена в '''/etc/pki/CA/newcerts''', с именем которое подходит серийному номеру сертификата  плюс .pem расширение:&lt;br /&gt;
 '''mkdir /etc/pki/CA/newcerts'''&lt;br /&gt;
Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата:&lt;br /&gt;
 '''touch /etc/pki/CA/index.txt'''&lt;br /&gt;
Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер:&lt;br /&gt;
 '''echo 01 &amp;gt; /etc/pki/CA/serial'''&lt;br /&gt;
&lt;br /&gt;
== Генерирование запроса сертификата и соответствующего ему приватного ключа ==&lt;br /&gt;
&lt;br /&gt;
Следующая команда сгенерирует , 1024-bit приватный RSA ключ и соответствующий ему публичный ключ будез завернут в PEM-encoded сертификат. Этот сертификат все еще не подписан и будет подан к CA на подпись позже:&lt;br /&gt;
&lt;br /&gt;
 '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''&lt;br /&gt;
&lt;br /&gt;
Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в  /etc/pki/CA/sslcert.pem.&lt;br /&gt;
&lt;br /&gt;
опция -nodes может быть использована что бы избежать pass-phrase для защиты приватного ключа. Это опционально, но некоторые приложения не могут прочитать приватный ключ  если он защищен pass-phrase, тогда как другие FreeRADIUS делают это без проблем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Подписывание Сертификата ==&lt;br /&gt;
&lt;br /&gt;
Что бы подписать сертификат сохраненный в /etc/pki/CA/sslcert.pem, используйте следующие комманды:,&lt;br /&gt;
 '''cd /etc/pki/CA/newcerts'''&lt;br /&gt;
 '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''&lt;br /&gt;
&lt;br /&gt;
Результирующий подписанный сертификат будет сохранен в /etc/pki/CA/cert.pem. когда сертификат подписан, то не подписанный сертификат можно удалить.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1456</id>
		<title>SSL configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1456"/>
		<updated>2009-03-24T18:59:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up Certificate Authority (CA) using OpenSSL ==&lt;br /&gt;
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]&lt;br /&gt;
&lt;br /&gt;
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им  запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.&lt;br /&gt;
&lt;br /&gt;
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Конфигурироание OpenSSL ==&lt;br /&gt;
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом:&lt;br /&gt;
обратите внимание на выделенное &lt;br /&gt;
 &lt;br /&gt;
 [ CA_default ]&lt;br /&gt;
 &lt;br /&gt;
 dir             = /etc/pki/CA           # Where everything is kept&lt;br /&gt;
 certs           = $dir/certs            # Where the issued certs are kept&lt;br /&gt;
 crl_dir         = $dir/crl              # Where the issued crl are kept&lt;br /&gt;
 database        = $dir/'''index.txt'''        # database index file.&lt;br /&gt;
 unique_subject  = no                    # Set to 'no' to allow creation of&lt;br /&gt;
                                         # several ctificates with same subject.&lt;br /&gt;
 new_certs_dir   = $dir/'''newcerts'''         # default place for new certs.&lt;br /&gt;
 &lt;br /&gt;
 certificate     = $dir/'''cacert.pem'''       # The CA certificate&lt;br /&gt;
 serial          = $dir/'''serial'''           # The current serial number&lt;br /&gt;
 #crlnumber      = $dir/crlnumber        # the current crl number must be&lt;br /&gt;
                                        # commented out to leave a V1 CRL&lt;br /&gt;
 crl             = $dir/crl.pem          # The current CRL&lt;br /&gt;
 private_key     = $dir/private/'''cakey.pem'''# The private key&lt;br /&gt;
 RANDFILE        = $dir/private/.rand    # private random number file&lt;br /&gt;
 &lt;br /&gt;
 x509_extensions = usr_cert              # The extentions to add to the cert&lt;br /&gt;
 &lt;br /&gt;
 # Comment out the following two lines for the &amp;quot;traditional&amp;quot;&lt;br /&gt;
 # (and highly broken) format.&lt;br /&gt;
 name_opt        = ca_default            # Subject Name options&lt;br /&gt;
 cert_opt        = ca_default            # Certificate field options&lt;br /&gt;
 &lt;br /&gt;
 # Extension copying option: use with caution.&lt;br /&gt;
 # copy_extensions = copy&lt;br /&gt;
 &lt;br /&gt;
 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs&lt;br /&gt;
 # so this is commented out by default to leave a V1 CRL.&lt;br /&gt;
 # crlnumber must also be commented out to leave a V1 CRL.&lt;br /&gt;
 # crl_extensions        = crl_ext&lt;br /&gt;
 &lt;br /&gt;
 default_days    = 365                   # how long to certify for&lt;br /&gt;
 default_crl_days= 30                    # how long before next CRL&lt;br /&gt;
 default_md      = sha1                  # which md to use.&lt;br /&gt;
 preserve        = no                    # keep passed DN ordering&lt;br /&gt;
 &lt;br /&gt;
 # A few difference way of specifying how similar the request should look&lt;br /&gt;
 # For type CA, the listed attributes must be the same, and the optional&lt;br /&gt;
 # and supplied fields are just that.&lt;br /&gt;
 policy          = policy_match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создание Certificate Authority (CA) ==&lt;br /&gt;
&lt;br /&gt;
Этим шагом мы создадим '''CA private key''' приватный ключ  и самоподписываемый the '''CA certificate''' сертификат .&lt;br /&gt;
Сертификат '''CA certificate''' будет сохранен в '''/etc/pki/CA/cacert.pem''', тогда как '''CA private key''' будет сохранен в '''/etc/pki/CA/private/cakey.pem''':&lt;br /&gt;
 '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem'''&lt;br /&gt;
 '''chmod 600 /etc/pki/CA/private/cakey.pem'''&lt;br /&gt;
&lt;br /&gt;
копия каждого подписанного сертификата будет сохранена в '''/etc/pki/CA/newcerts''', с именем которое подходит серийному номеру сертификата  плюс .pem расширение:&lt;br /&gt;
 '''mkdir /etc/pki/CA/newcerts'''&lt;br /&gt;
Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата:&lt;br /&gt;
 '''touch /etc/pki/CA/index.txt'''&lt;br /&gt;
Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер:&lt;br /&gt;
 '''echo 01 &amp;gt; /etc/pki/CA/serial'''&lt;br /&gt;
&lt;br /&gt;
== Генерирование запроса сертификата и соответствующего ему приватного ключа ==&lt;br /&gt;
&lt;br /&gt;
Следующая команда сгенерирует , 1024-bit приватный RSA ключ и соответствующий ему публичный ключ будез завернут в PEM-encoded сертификат. Этот сертификат все еще не подписан и будет подан к CA на подпись позже:&lt;br /&gt;
&lt;br /&gt;
 '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''&lt;br /&gt;
&lt;br /&gt;
Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в  /etc/pki/CA/sslcert.pem.&lt;br /&gt;
&lt;br /&gt;
опция -nodes может быть использована что бы избежать pass-phrase для защиты приватного ключа. Это опционально, но некоторые приложения не могут прочитать приватный ключ  если он защищен pass-phrase, тогда как другие FreeRADIUS делают это без проблем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Подписывание Сертификата ==&lt;br /&gt;
&lt;br /&gt;
Что бы подписать сертификат сохраненный в /etc/pki/CA/sslcert.pem, используйте следующие комманды:,&lt;br /&gt;
 '''cd /etc/pki/CA/newcerts'''&lt;br /&gt;
 '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''&lt;br /&gt;
&lt;br /&gt;
Результирующий подписанный сертификат будет сохранен в /etc/pki/CA/cert.pem. когда сертификат подписан, то не подписанный сертификат можно удалить.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1454</id>
		<title>SSL configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1454"/>
		<updated>2009-03-24T18:58:25Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up Certificate Authority (CA) using OpenSSL ==&lt;br /&gt;
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]&lt;br /&gt;
&lt;br /&gt;
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им  запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.&lt;br /&gt;
&lt;br /&gt;
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring OpenSSL ==&lt;br /&gt;
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом:&lt;br /&gt;
обратите внимание на выделенное &lt;br /&gt;
 &lt;br /&gt;
 [ CA_default ]&lt;br /&gt;
 &lt;br /&gt;
 dir             = /etc/pki/CA           # Where everything is kept&lt;br /&gt;
 certs           = $dir/certs            # Where the issued certs are kept&lt;br /&gt;
 crl_dir         = $dir/crl              # Where the issued crl are kept&lt;br /&gt;
 database        = $dir/'''index.txt'''        # database index file.&lt;br /&gt;
 unique_subject  = no                    # Set to 'no' to allow creation of&lt;br /&gt;
                                         # several ctificates with same subject.&lt;br /&gt;
 new_certs_dir   = $dir/'''newcerts'''         # default place for new certs.&lt;br /&gt;
 &lt;br /&gt;
 certificate     = $dir/'''cacert.pem'''       # The CA certificate&lt;br /&gt;
 serial          = $dir/'''serial'''           # The current serial number&lt;br /&gt;
 #crlnumber      = $dir/crlnumber        # the current crl number must be&lt;br /&gt;
                                        # commented out to leave a V1 CRL&lt;br /&gt;
 crl             = $dir/crl.pem          # The current CRL&lt;br /&gt;
 private_key     = $dir/private/'''cakey.pem'''# The private key&lt;br /&gt;
 RANDFILE        = $dir/private/.rand    # private random number file&lt;br /&gt;
 &lt;br /&gt;
 x509_extensions = usr_cert              # The extentions to add to the cert&lt;br /&gt;
 &lt;br /&gt;
 # Comment out the following two lines for the &amp;quot;traditional&amp;quot;&lt;br /&gt;
 # (and highly broken) format.&lt;br /&gt;
 name_opt        = ca_default            # Subject Name options&lt;br /&gt;
 cert_opt        = ca_default            # Certificate field options&lt;br /&gt;
 &lt;br /&gt;
 # Extension copying option: use with caution.&lt;br /&gt;
 # copy_extensions = copy&lt;br /&gt;
 &lt;br /&gt;
 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs&lt;br /&gt;
 # so this is commented out by default to leave a V1 CRL.&lt;br /&gt;
 # crlnumber must also be commented out to leave a V1 CRL.&lt;br /&gt;
 # crl_extensions        = crl_ext&lt;br /&gt;
 &lt;br /&gt;
 default_days    = 365                   # how long to certify for&lt;br /&gt;
 default_crl_days= 30                    # how long before next CRL&lt;br /&gt;
 default_md      = sha1                  # which md to use.&lt;br /&gt;
 preserve        = no                    # keep passed DN ordering&lt;br /&gt;
 &lt;br /&gt;
 # A few difference way of specifying how similar the request should look&lt;br /&gt;
 # For type CA, the listed attributes must be the same, and the optional&lt;br /&gt;
 # and supplied fields are just that.&lt;br /&gt;
 policy          = policy_match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Создание Certificate Authority (CA) ==&lt;br /&gt;
&lt;br /&gt;
Этим шагом мы создадим '''CA private key''' приватный ключ  и самоподписываемый the '''CA certificate''' сертификат .&lt;br /&gt;
Сертификат '''CA certificate''' будет сохранен в '''/etc/pki/CA/cacert.pem''', тогда как '''CA private key''' будет сохранен в '''/etc/pki/CA/private/cakey.pem''':&lt;br /&gt;
 '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem'''&lt;br /&gt;
 '''chmod 600 /etc/pki/CA/private/cakey.pem'''&lt;br /&gt;
&lt;br /&gt;
копия каждого подписанного сертификата будет сохранена в '''/etc/pki/CA/newcerts''', с именем которое подходит серийному номеру сертификата  плюс .pem расширение:&lt;br /&gt;
 '''mkdir /etc/pki/CA/newcerts'''&lt;br /&gt;
Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата:&lt;br /&gt;
 '''touch /etc/pki/CA/index.txt'''&lt;br /&gt;
Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер:&lt;br /&gt;
 '''echo 01 &amp;gt; /etc/pki/CA/serial'''&lt;br /&gt;
&lt;br /&gt;
== Генерирование запроса сертификата и соответствующего ему приватного ключа ==&lt;br /&gt;
&lt;br /&gt;
Следующая команда сгенерирует , 1024-bit приватный RSA ключ и соответствующий ему публичный ключ будез завернут в PEM-encoded сертификат. Этот сертификат все еще не подписан и будет подан к CA на подпись позже:&lt;br /&gt;
&lt;br /&gt;
 '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''&lt;br /&gt;
&lt;br /&gt;
Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в  /etc/pki/CA/sslcert.pem.&lt;br /&gt;
&lt;br /&gt;
опция -nodes может быть использована что бы избежать pass-phrase для защиты приватного ключа. Это опционально, но некоторые приложения не могут прочитать приватный ключ  если он защищен pass-phrase, тогда как другие FreeRADIUS делают это без проблем.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Подписывание Сертификата ==&lt;br /&gt;
&lt;br /&gt;
Что бы подписать сертификат сохраненный в /etc/pki/CA/sslcert.pem, используйте следующие комманды:,&lt;br /&gt;
 '''cd /etc/pki/CA/newcerts'''&lt;br /&gt;
 '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''&lt;br /&gt;
&lt;br /&gt;
Результирующий подписанный сертификат будет сохранен в /etc/pki/CA/cert.pem. когда сертификат подписан, то не подписанный сертификат можно удалить.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1451</id>
		<title>SSL configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1451"/>
		<updated>2009-03-24T18:50:58Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up Certificate Authority (CA) using OpenSSL ==&lt;br /&gt;
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]&lt;br /&gt;
&lt;br /&gt;
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им  запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.&lt;br /&gt;
&lt;br /&gt;
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring OpenSSL ==&lt;br /&gt;
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом:&lt;br /&gt;
обратите внимание на выделенное &lt;br /&gt;
 &lt;br /&gt;
 [ CA_default ]&lt;br /&gt;
 &lt;br /&gt;
 dir             = /etc/pki/CA           # Where everything is kept&lt;br /&gt;
 certs           = $dir/certs            # Where the issued certs are kept&lt;br /&gt;
 crl_dir         = $dir/crl              # Where the issued crl are kept&lt;br /&gt;
 database        = $dir/'''index.txt'''        # database index file.&lt;br /&gt;
 unique_subject  = no                    # Set to 'no' to allow creation of&lt;br /&gt;
                                         # several ctificates with same subject.&lt;br /&gt;
 new_certs_dir   = $dir/'''newcerts'''         # default place for new certs.&lt;br /&gt;
 &lt;br /&gt;
 certificate     = $dir/'''cacert.pem'''       # The CA certificate&lt;br /&gt;
 serial          = $dir/'''serial'''           # The current serial number&lt;br /&gt;
 #crlnumber      = $dir/crlnumber        # the current crl number must be&lt;br /&gt;
                                        # commented out to leave a V1 CRL&lt;br /&gt;
 crl             = $dir/crl.pem          # The current CRL&lt;br /&gt;
 private_key     = $dir/private/'''cakey.pem'''# The private key&lt;br /&gt;
 RANDFILE        = $dir/private/.rand    # private random number file&lt;br /&gt;
 &lt;br /&gt;
 x509_extensions = usr_cert              # The extentions to add to the cert&lt;br /&gt;
 &lt;br /&gt;
 # Comment out the following two lines for the &amp;quot;traditional&amp;quot;&lt;br /&gt;
 # (and highly broken) format.&lt;br /&gt;
 name_opt        = ca_default            # Subject Name options&lt;br /&gt;
 cert_opt        = ca_default            # Certificate field options&lt;br /&gt;
 &lt;br /&gt;
 # Extension copying option: use with caution.&lt;br /&gt;
 # copy_extensions = copy&lt;br /&gt;
 &lt;br /&gt;
 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs&lt;br /&gt;
 # so this is commented out by default to leave a V1 CRL.&lt;br /&gt;
 # crlnumber must also be commented out to leave a V1 CRL.&lt;br /&gt;
 # crl_extensions        = crl_ext&lt;br /&gt;
 &lt;br /&gt;
 default_days    = 365                   # how long to certify for&lt;br /&gt;
 default_crl_days= 30                    # how long before next CRL&lt;br /&gt;
 default_md      = sha1                  # which md to use.&lt;br /&gt;
 preserve        = no                    # keep passed DN ordering&lt;br /&gt;
 &lt;br /&gt;
 # A few difference way of specifying how similar the request should look&lt;br /&gt;
 # For type CA, the listed attributes must be the same, and the optional&lt;br /&gt;
 # and supplied fields are just that.&lt;br /&gt;
 policy          = policy_match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating the Certificate Authority (CA) ==&lt;br /&gt;
&lt;br /&gt;
Этим шагом мы создадим '''CA private key''' приватный ключ  и самоподписываемый the '''CA certificate''' сертификат .&lt;br /&gt;
Сертификат '''CA certificate''' будет сохранен в '''/etc/pki/CA/cacert.pem''', тогда как '''CA private key''' будет сохранен в '''/etc/pki/CA/private/cakey.pem''':&lt;br /&gt;
 '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem'''&lt;br /&gt;
 '''chmod 600 /etc/pki/CA/private/cakey.pem'''&lt;br /&gt;
&lt;br /&gt;
копия каждого подписанного сертификата будет сохранена в '''/etc/pki/CA/newcerts''', с именем которое подходит серийному номеру сертификата  плюс .pem расширение:&lt;br /&gt;
 '''mkdir /etc/pki/CA/newcerts'''&lt;br /&gt;
Файл /etc/pki/CA/index.txt содержит лог каждого подписанного сертификата:&lt;br /&gt;
 '''touch /etc/pki/CA/index.txt'''&lt;br /&gt;
Файл /etc/pki/CA/serial файл содержит следующий X.509 свободный серийный номер:&lt;br /&gt;
 '''echo 01 &amp;gt; /etc/pki/CA/serial'''&lt;br /&gt;
&lt;br /&gt;
== Генерирование запроса сертификата и соответствующий ему приватный ключ ==&lt;br /&gt;
&lt;br /&gt;
Следующая команда сгенерирует , 1024-bit приватный RSA ключ и соответствующий ему публичный ключ будез завернут в PEM-encoded сертификат. Этот сертификат все еще не подписан и будет подан к CA на подпись позже:&lt;br /&gt;
&lt;br /&gt;
 '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''&lt;br /&gt;
&lt;br /&gt;
Приватный ключ будет сохранен в /etc/pki/CA/sslkey.pem тогда как публичный ключ, закодирован в не подписанный сертификат, будет сохранен в  /etc/pki/CA/sslcert.pem.&lt;br /&gt;
&lt;br /&gt;
The -nodes option can be used to avoid using a pass-phrase to protect the private key. This is optional, but some applications are unable to read the private key if it was protected by a pass-phrase, while others like FreeRADIUS can do so with no problems at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Signing a certificate ==&lt;br /&gt;
&lt;br /&gt;
To sign a certificate stored in /etc/pki/CA/sslcert.pem, use the following command:,&lt;br /&gt;
 '''cd /etc/pki/CA/newcerts'''&lt;br /&gt;
 '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''&lt;br /&gt;
&lt;br /&gt;
The resulting signed certificate will get outputted to /etc/pki/CA/cert.pem. Once the certificate has been signed, the unsigned certificate can be safely deleted.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1450</id>
		<title>SSL configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1450"/>
		<updated>2009-03-24T18:34:33Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up Certificate Authority (CA) using OpenSSL ==&lt;br /&gt;
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]&lt;br /&gt;
&lt;br /&gt;
'''OpenSSL''' утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им  запросы сертификатов открытого ключа '''public key certificate requests''', может подписывать запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.&lt;br /&gt;
&lt;br /&gt;
В этом статье я опишу как использовать OpenSSL, чтобы установить Certificate Authority (CA), как сгенерировать приватный ключ, генерировать запрос сертификатов и подписать их, ипользуя OpenSSL и command-line утилиты на CentOS Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring OpenSSL ==&lt;br /&gt;
Редактируем /etc/pki/tls/openssl.cnf и удостовертесь, что секция [ CA_default ] выглядит следующим образом:&lt;br /&gt;
обратите внимание на выделенное &lt;br /&gt;
 &lt;br /&gt;
 [ CA_default ]&lt;br /&gt;
 &lt;br /&gt;
 dir             = /etc/pki/CA           # Where everything is kept&lt;br /&gt;
 certs           = $dir/certs            # Where the issued certs are kept&lt;br /&gt;
 crl_dir         = $dir/crl              # Where the issued crl are kept&lt;br /&gt;
 database        = $dir/'''index.txt'''        # database index file.&lt;br /&gt;
 unique_subject  = no                    # Set to 'no' to allow creation of&lt;br /&gt;
                                         # several ctificates with same subject.&lt;br /&gt;
 new_certs_dir   = $dir/'''newcerts'''         # default place for new certs.&lt;br /&gt;
 &lt;br /&gt;
 certificate     = $dir/'''cacert.pem'''       # The CA certificate&lt;br /&gt;
 serial          = $dir/'''serial'''           # The current serial number&lt;br /&gt;
 #crlnumber      = $dir/crlnumber        # the current crl number must be&lt;br /&gt;
                                        # commented out to leave a V1 CRL&lt;br /&gt;
 crl             = $dir/crl.pem          # The current CRL&lt;br /&gt;
 private_key     = $dir/private/'''cakey.pem'''# The private key&lt;br /&gt;
 RANDFILE        = $dir/private/.rand    # private random number file&lt;br /&gt;
 &lt;br /&gt;
 x509_extensions = usr_cert              # The extentions to add to the cert&lt;br /&gt;
 &lt;br /&gt;
 # Comment out the following two lines for the &amp;quot;traditional&amp;quot;&lt;br /&gt;
 # (and highly broken) format.&lt;br /&gt;
 name_opt        = ca_default            # Subject Name options&lt;br /&gt;
 cert_opt        = ca_default            # Certificate field options&lt;br /&gt;
 &lt;br /&gt;
 # Extension copying option: use with caution.&lt;br /&gt;
 # copy_extensions = copy&lt;br /&gt;
 &lt;br /&gt;
 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs&lt;br /&gt;
 # so this is commented out by default to leave a V1 CRL.&lt;br /&gt;
 # crlnumber must also be commented out to leave a V1 CRL.&lt;br /&gt;
 # crl_extensions        = crl_ext&lt;br /&gt;
 &lt;br /&gt;
 default_days    = 365                   # how long to certify for&lt;br /&gt;
 default_crl_days= 30                    # how long before next CRL&lt;br /&gt;
 default_md      = sha1                  # which md to use.&lt;br /&gt;
 preserve        = no                    # keep passed DN ordering&lt;br /&gt;
 &lt;br /&gt;
 # A few difference way of specifying how similar the request should look&lt;br /&gt;
 # For type CA, the listed attributes must be the same, and the optional&lt;br /&gt;
 # and supplied fields are just that.&lt;br /&gt;
 policy          = policy_match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating the Certificate Authority (CA) ==&lt;br /&gt;
&lt;br /&gt;
Этим шагом мы создадим '''CA private key''' приватный ключ  и самоподписываемый the '''CA certificate''' сертификат .&lt;br /&gt;
Сертификат '''CA certificate''' будет сохранен в '''/etc/pki/CA/cacert.pem''', тогда как '''CA private key''' будет сохранен в '''/etc/pki/CA/private/cakey.pem''':&lt;br /&gt;
 '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem'''&lt;br /&gt;
 '''chmod 600 /etc/pki/CA/private/cakey.pem'''&lt;br /&gt;
&lt;br /&gt;
A copy of every signed certificate will be stored into /etc/pki/CA/newcerts, with a name matching the certificate serial number plus the .pem extension:&lt;br /&gt;
 '''mkdir /etc/pki/CA/newcerts'''&lt;br /&gt;
The /etc/pki/CA/index.txt file holds a log of every signed certificate:&lt;br /&gt;
 '''touch /etc/pki/CA/index.txt'''&lt;br /&gt;
The /etc/pki/CA/serial file holds the next available X.509 serial number:&lt;br /&gt;
 '''echo 01 &amp;gt; /etc/pki/CA/serial'''&lt;br /&gt;
&lt;br /&gt;
== Generating a certificate request and its corresponding private key ==&lt;br /&gt;
&lt;br /&gt;
The following command will generate a random, 1024-bit private RSA key and its corresponding public key will be wrapped into a PEM-encoded certificate. This certificate is still unsigned and will be submitted later to the CA for signing:&lt;br /&gt;
&lt;br /&gt;
 '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''&lt;br /&gt;
&lt;br /&gt;
The private key will get written to /etc/pki/CA/sslkey.pem while the public key, encoded inside an unsigned certificate, will get written to /etc/pki/CA/sslcert.pem.&lt;br /&gt;
&lt;br /&gt;
The -nodes option can be used to avoid using a pass-phrase to protect the private key. This is optional, but some applications are unable to read the private key if it was protected by a pass-phrase, while others like FreeRADIUS can do so with no problems at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Signing a certificate ==&lt;br /&gt;
&lt;br /&gt;
To sign a certificate stored in /etc/pki/CA/sslcert.pem, use the following command:,&lt;br /&gt;
 '''cd /etc/pki/CA/newcerts'''&lt;br /&gt;
 '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''&lt;br /&gt;
&lt;br /&gt;
The resulting signed certificate will get outputted to /etc/pki/CA/cert.pem. Once the certificate has been signed, the unsigned certificate can be safely deleted.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1448</id>
		<title>SSL configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=SSL_configure&amp;diff=1448"/>
		<updated>2009-03-24T18:19:21Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up Certificate Authority (CA) using OpenSSL ==&lt;br /&gt;
[[ http://www.felipe-alfaro.org/blog/2005/11/18/setting-up-certificate-authority-ca-using-openssl/ |original ]]&lt;br /&gt;
&lt;br /&gt;
OpenSSL утилиты дают большую функциональность. OpenSSL может генерировать '''private keys''' приватные ключи и соответствующие им '''public key certificate requests''' запросы сертификатов открытого ключа, может подписывать (sign) запросы сертификатов, публиковать анулирование серртификатов '''certificate revocation lists (CRLs)''',  конвертировать между некоторыми форматами кодировок  например DER, PEM, PKCS#12, etc.&lt;br /&gt;
&lt;br /&gt;
In this article I will describe how to use OpenSSL to set up a Certificate Authority (CA), how to generate private keys, generate certificate requests and sign them, using OpenSSL and the command-line on a Fedora Core 4 Linux system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configuring OpenSSL ==&lt;br /&gt;
Edit /etc/pki/tls/openssl.cnf and make sure the [ CA_default ] section looks like this:&lt;br /&gt;
 &lt;br /&gt;
 [ CA_default ]&lt;br /&gt;
 &lt;br /&gt;
 dir             = /etc/pki/CA           # Where everything is kept&lt;br /&gt;
 certs           = $dir/certs            # Where the issued certs are kept&lt;br /&gt;
 crl_dir         = $dir/crl              # Where the issued crl are kept&lt;br /&gt;
 database        = $dir/index.txt        # database index file.&lt;br /&gt;
 unique_subject  = no                    # Set to 'no' to allow creation of&lt;br /&gt;
                                         # several ctificates with same subject.&lt;br /&gt;
 new_certs_dir   = $dir/newcerts         # default place for new certs.&lt;br /&gt;
 &lt;br /&gt;
 certificate     = $dir/cacert.pem       # The CA certificate&lt;br /&gt;
 serial          = $dir/serial           # The current serial number&lt;br /&gt;
 #crlnumber      = $dir/crlnumber        # the current crl number must be&lt;br /&gt;
                                        # commented out to leave a V1 CRL&lt;br /&gt;
 crl             = $dir/crl.pem          # The current CRL&lt;br /&gt;
 private_key     = $dir/private/cakey.pem# The private key&lt;br /&gt;
 RANDFILE        = $dir/private/.rand    # private random number file&lt;br /&gt;
 &lt;br /&gt;
 x509_extensions = usr_cert              # The extentions to add to the cert&lt;br /&gt;
 &lt;br /&gt;
 # Comment out the following two lines for the &amp;quot;traditional&amp;quot;&lt;br /&gt;
 # (and highly broken) format.&lt;br /&gt;
 name_opt        = ca_default            # Subject Name options&lt;br /&gt;
 cert_opt        = ca_default            # Certificate field options&lt;br /&gt;
 &lt;br /&gt;
 # Extension copying option: use with caution.&lt;br /&gt;
 # copy_extensions = copy&lt;br /&gt;
 &lt;br /&gt;
 # Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs&lt;br /&gt;
 # so this is commented out by default to leave a V1 CRL.&lt;br /&gt;
 # crlnumber must also be commented out to leave a V1 CRL.&lt;br /&gt;
 # crl_extensions        = crl_ext&lt;br /&gt;
 &lt;br /&gt;
 default_days    = 365                   # how long to certify for&lt;br /&gt;
 default_crl_days= 30                    # how long before next CRL&lt;br /&gt;
 default_md      = sha1                  # which md to use.&lt;br /&gt;
 preserve        = no                    # keep passed DN ordering&lt;br /&gt;
 &lt;br /&gt;
 # A few difference way of specifying how similar the request should look&lt;br /&gt;
 # For type CA, the listed attributes must be the same, and the optional&lt;br /&gt;
 # and supplied fields are just that.&lt;br /&gt;
 policy          = policy_match&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating the Certificate Authority (CA) ==&lt;br /&gt;
&lt;br /&gt;
This step will create the CA private key and a self-signed certificate (the CA certificate).&lt;br /&gt;
The CA certificate will be stored in /etc/pki/CA/cacert.pem, while the CA private key will be stored in /etc/pki/CA/private/cakey.pem:&lt;br /&gt;
 '''openssl req -new -x509 -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem'''&lt;br /&gt;
 '''chmod 600 /etc/pki/CA/private/cakey.pem'''&lt;br /&gt;
&lt;br /&gt;
A copy of every signed certificate will be stored into /etc/pki/CA/newcerts, with a name matching the certificate serial number plus the .pem extension:&lt;br /&gt;
 '''mkdir /etc/pki/CA/newcerts'''&lt;br /&gt;
The /etc/pki/CA/index.txt file holds a log of every signed certificate:&lt;br /&gt;
 '''touch /etc/pki/CA/index.txt'''&lt;br /&gt;
The /etc/pki/CA/serial file holds the next available X.509 serial number:&lt;br /&gt;
 '''echo 01 &amp;gt; /etc/pki/CA/serial'''&lt;br /&gt;
&lt;br /&gt;
== Generating a certificate request and its corresponding private key ==&lt;br /&gt;
&lt;br /&gt;
The following command will generate a random, 1024-bit private RSA key and its corresponding public key will be wrapped into a PEM-encoded certificate. This certificate is still unsigned and will be submitted later to the CA for signing:&lt;br /&gt;
&lt;br /&gt;
 '''openssl req -new -days 365 -newkey rsa:1024 -keyout /etc/pki/CA/sslkey.pem  -out /etc/pki/CA/sslcert.pem'''&lt;br /&gt;
&lt;br /&gt;
The private key will get written to /etc/pki/CA/sslkey.pem while the public key, encoded inside an unsigned certificate, will get written to /etc/pki/CA/sslcert.pem.&lt;br /&gt;
&lt;br /&gt;
The -nodes option can be used to avoid using a pass-phrase to protect the private key. This is optional, but some applications are unable to read the private key if it was protected by a pass-phrase, while others like FreeRADIUS can do so with no problems at all.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Signing a certificate ==&lt;br /&gt;
&lt;br /&gt;
To sign a certificate stored in /etc/pki/CA/sslcert.pem, use the following command:,&lt;br /&gt;
 '''cd /etc/pki/CA/newcerts'''&lt;br /&gt;
 '''openssl ca -in /etc/pki/CA/sslcert.pem -out /etc/pki/CA/cert.pem'''&lt;br /&gt;
&lt;br /&gt;
The resulting signed certificate will get outputted to /etc/pki/CA/cert.pem. Once the certificate has been signed, the unsigned certificate can be safely deleted.&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1419</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1419"/>
		<updated>2009-03-24T07:22:57Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
создаем файл каталог &lt;br /&gt;
 '''mkdir /etc/openldap/schema/phamm''' &lt;br /&gt;
&lt;br /&gt;
вытягиваем из phamm-0.5.15.tar.gz схему в каталог этот каталог&lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /etc/openldap/schema/phamm&lt;br /&gt;
 '''cd /etc/openldap/schema/phamm'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
правим файл конфигурации /etc/openldap/sldap.conf&lt;br /&gt;
после строчек &lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
&lt;br /&gt;
добавляем &lt;br /&gt;
 include         /etc/openldap/schema/phamm/phamm.schema&lt;br /&gt;
 include         /etc/openldap/schema/phamm/ISPEnv2.schema&lt;br /&gt;
 include         /etc/openldap/schema/phamm/amavis.schema&lt;br /&gt;
 include         /etc/openldap/schema/phamm/pureftpd.schema&lt;br /&gt;
 include         /etc/openldap/schema/phamm/samba.schema&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap [http://wiki/index.php/LDAP-configure Установка LDAP сервера]&lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
[http://wiki/index.php/ldap-errors Ldap не стартанул]&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1417</id>
		<title>LDAP-configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1417"/>
		<updated>2009-03-23T23:24:32Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка OpenLDAP сервера на CentOS 5 ==&lt;br /&gt;
&lt;br /&gt;
 '''yum -y install openldap'''&lt;br /&gt;
и правим файл настроек &lt;br /&gt;
 /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
основные поля что обязательно надо поставить &lt;br /&gt;
 suffix   &amp;quot;dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootdn   &amp;quot;cn=Manager,dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootpw   {MD5}************************&lt;br /&gt;
&lt;br /&gt;
копируем файл и устанавливаем атрибуты&lt;br /&gt;
 '''cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
 '''chown ldap:ldap /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
и стартуем сервер&lt;br /&gt;
 '''service ldap start'''&lt;br /&gt;
и что бы при каждом старте запускался &lt;br /&gt;
 '''chkconfig ldap on'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1416</id>
		<title>LDAP-configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1416"/>
		<updated>2009-03-23T23:24:11Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка OpenLDAP сервера на CentOS 5 ==&lt;br /&gt;
&lt;br /&gt;
 '''yum -y install openldap'''&lt;br /&gt;
и правим файл настроек &lt;br /&gt;
 /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
основные поля что обязательно надо поставить &lt;br /&gt;
 suffix   &amp;quot;dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootdn   &amp;quot;cn=Manager,dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootpw   {MD5}************************&lt;br /&gt;
&lt;br /&gt;
копируем файл и устанавливаем атрибуты&lt;br /&gt;
 '''cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
 '''chown ldap:ldap /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
и стартуем сервер&lt;br /&gt;
 service ldap start&lt;br /&gt;
и что бы при каждом старте запускался &lt;br /&gt;
 chkconfig ldap on&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1415</id>
		<title>LDAP-configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1415"/>
		<updated>2009-03-23T23:23:27Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка OpenLDAP сервера на CentOS 5 ==&lt;br /&gt;
&lt;br /&gt;
 '''yum -y install openldap'''&lt;br /&gt;
и правим файл настроек &lt;br /&gt;
 /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
основные поля что обязательно надо поставить &lt;br /&gt;
 suffix   &amp;quot;dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootdn   &amp;quot;cn=Manager,dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootpw   {MD5}************************&lt;br /&gt;
&lt;br /&gt;
копируем файл и устанавливаем атрибуты&lt;br /&gt;
 '''cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
 '''chown ldap:ldap /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
и стартуем сервер&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1414</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1414"/>
		<updated>2009-03-23T23:22:41Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
вытягиваем из него схемы для удобства в свой каталог &lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /root/work/'''&lt;br /&gt;
 '''cd /root/work'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем файл '''schema.convert''' с содержимым&lt;br /&gt;
&lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
 include         phamm.schema&lt;br /&gt;
 include         ISPEnv2.schema&lt;br /&gt;
 include         amavis.schema&lt;br /&gt;
 include         pureftpd.schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем временный каталог &lt;br /&gt;
 '''mkdir ldif_out'''&lt;br /&gt;
и теперь конвертируем схемы в ldif файлы&lt;br /&gt;
 '''slaptest -f schema.convert -F ldif_out'''&lt;br /&gt;
 config file testing succeeded&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap [http://wiki/index.php/LDAP-configure Установка LDAP сервера]&lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
[http://wiki/index.php/ldap-errors Ldap не стартанул]&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1413</id>
		<title>LDAP-configure</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=LDAP-configure&amp;diff=1413"/>
		<updated>2009-03-23T23:21:46Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Установка OpenLDAP сервера на CentOS 5 ==&lt;br /&gt;
&lt;br /&gt;
 '''yum -y install openldap'''&lt;br /&gt;
и правим файл настроек &lt;br /&gt;
 '''/etc/openldap/slapd.conf'''&lt;br /&gt;
&lt;br /&gt;
основные поля что обязательно надо поставить &lt;br /&gt;
 suffix   &amp;quot;dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootdn   &amp;quot;cn=Manager,dc=server-linux,dc=info&amp;quot;&lt;br /&gt;
 rootpw   {MD5}************************&lt;br /&gt;
&lt;br /&gt;
копируем файл и устанавливаем атрибуты&lt;br /&gt;
 cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/DB_CONFIG&lt;br /&gt;
и стартуем сервер&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Ldap-errors&amp;diff=1412</id>
		<title>Ldap-errors</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Ldap-errors&amp;diff=1412"/>
		<updated>2009-03-23T23:17:24Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Если LDAP сервер не запускается ==&lt;br /&gt;
 &lt;br /&gt;
 для Centos 5&lt;br /&gt;
 настройка [http://wiki/index.php/LDAP-configure Установка OpenLDAP сервера ]  сервера &lt;br /&gt;
 база ldap содержиться в каталоге '''/var/lib/ldap'''&lt;br /&gt;
 &lt;br /&gt;
 вероятные причины в нем отсутствует файл '''DB_CONFIG'''&lt;br /&gt;
&lt;br /&gt;
 копируем его с /etc/openldap/DB_CONFIG.example&lt;br /&gt;
 ''' cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG'''&lt;br /&gt;
и пробуем перестартовать, если возникли ошибки смотрим в&lt;br /&gt;
 /etc/openldap/slapd.conf&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1411</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1411"/>
		<updated>2009-03-23T23:11:41Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
вытягиваем из него схемы для удобства в свой каталог &lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /root/work/'''&lt;br /&gt;
 '''cd /root/work'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем файл '''schema.convert''' с содержимым&lt;br /&gt;
&lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
 include         phamm.schema&lt;br /&gt;
 include         ISPEnv2.schema&lt;br /&gt;
 include         amavis.schema&lt;br /&gt;
 include         pureftpd.schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем временный каталог &lt;br /&gt;
 '''mkdir ldif_out'''&lt;br /&gt;
и теперь конвертируем схемы в ldif файлы&lt;br /&gt;
 '''slaptest -f schema.convert -F ldif_out'''&lt;br /&gt;
 config file testing succeeded&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap &lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
[http://wiki/index.php/ldap-errors Ldap не стартанул]&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1410</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1410"/>
		<updated>2009-03-23T23:11:18Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
вытягиваем из него схемы для удобства в свой каталог &lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /root/work/'''&lt;br /&gt;
 '''cd /root/work'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем файл '''schema.convert''' с содержимым&lt;br /&gt;
&lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
 include         phamm.schema&lt;br /&gt;
 include         ISPEnv2.schema&lt;br /&gt;
 include         amavis.schema&lt;br /&gt;
 include         pureftpd.schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем временный каталог &lt;br /&gt;
 '''mkdir ldif_out'''&lt;br /&gt;
и теперь конвертируем схемы в ldif файлы&lt;br /&gt;
 '''slaptest -f schema.convert -F ldif_out'''&lt;br /&gt;
 config file testing succeeded&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap &lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
[http://wiki/index.php?ldap-errors Ldap не стартанул]&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1409</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1409"/>
		<updated>2009-03-23T23:10:50Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
вытягиваем из него схемы для удобства в свой каталог &lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /root/work/'''&lt;br /&gt;
 '''cd /root/work'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем файл '''schema.convert''' с содержимым&lt;br /&gt;
&lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
 include         phamm.schema&lt;br /&gt;
 include         ISPEnv2.schema&lt;br /&gt;
 include         amavis.schema&lt;br /&gt;
 include         pureftpd.schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем временный каталог &lt;br /&gt;
 '''mkdir ldif_out'''&lt;br /&gt;
и теперь конвертируем схемы в ldif файлы&lt;br /&gt;
 '''slaptest -f schema.convert -F ldif_out'''&lt;br /&gt;
 config file testing succeeded&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap &lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
[http://wiki/ldap-errors Ldap не стартанул]&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1408</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1408"/>
		<updated>2009-03-23T23:09:20Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
вытягиваем из него схемы для удобства в свой каталог &lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /root/work/'''&lt;br /&gt;
 '''cd /root/work'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем файл '''schema.convert''' с содержимым&lt;br /&gt;
&lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
 include         phamm.schema&lt;br /&gt;
 include         ISPEnv2.schema&lt;br /&gt;
 include         amavis.schema&lt;br /&gt;
 include         pureftpd.schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем временный каталог &lt;br /&gt;
 '''mkdir ldif_out'''&lt;br /&gt;
и теперь конвертируем схемы в ldif файлы&lt;br /&gt;
 '''slaptest -f schema.convert -F ldif_out'''&lt;br /&gt;
 config file testing succeeded&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap &lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
[ldap-errors Ldap не стартанул]&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1407</id>
		<title>Mail setting</title>
		<link rel="alternate" type="text/html" href="https://wiki.welard.com/index.php?title=Mail_setting&amp;diff=1407"/>
		<updated>2009-03-23T22:56:20Z</updated>

		<summary type="html">&lt;p&gt;192.168.51.51: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.postfix.org/ Postfix ] Virtual Hosting с [http://www.openldap.org/ OpenLDAP], [http://www.dovecot.org/ Dovecot] как IMAP/POP3,[http://www.onyxbits.de/gnarwl Gnarwl] как автоответчик и  [http://www.phamm.org/ Phamm] как интерфейс управления&lt;br /&gt;
&lt;br /&gt;
[http://www.howtoforge.com/postfix-virtual-hosting-with-ldap-backend-and-with-dovecot-pop3-imap-on-ubuntu-8.10 оригинал статьи]&lt;br /&gt;
&lt;br /&gt;
* Сначала устанавливаем нужные пакеты &lt;br /&gt;
  '''yum install OpenLDAP'''&lt;br /&gt;
   конфиг его здесь /etc/openldap/ldap.conf&lt;br /&gt;
&lt;br /&gt;
  '''yum install openldap-servers'''&lt;br /&gt;
   в этом есть нужные схемы &lt;br /&gt;
   и конфиг его здесь /etc/openldap/slapd.conf&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем каталог &lt;br /&gt;
 '''mkdir /root/work/phamm-inst'''&lt;br /&gt;
качаем &lt;br /&gt;
 '''cd /root/work/phamm-inst'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz'''&lt;br /&gt;
раскручиваем &lt;br /&gt;
 '''tar xvzf phamm-0.5.15.tar.gz'''&lt;br /&gt;
&lt;br /&gt;
вытягиваем из него схемы для удобства в свой каталог &lt;br /&gt;
 '''cp phamm-0.5.15/schema/phamm.schema /root/work/'''&lt;br /&gt;
 '''cd /root/work'''&lt;br /&gt;
добавляем схемы &lt;br /&gt;
&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/ISPEnv2.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/amavis.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/samba.schema'''&lt;br /&gt;
 '''wget http://open.rhx.it/phamm/schema/pureftpd.schema''' &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем файл '''schema.convert''' с содержимым&lt;br /&gt;
&lt;br /&gt;
 include         /etc/openldap/schema/core.schema&lt;br /&gt;
 include         /etc/openldap/schema/cosine.schema&lt;br /&gt;
 include         /etc/openldap/schema/nis.schema&lt;br /&gt;
 include         /etc/openldap/schema/inetorgperson.schema&lt;br /&gt;
 include         phamm.schema&lt;br /&gt;
 include         ISPEnv2.schema&lt;br /&gt;
 include         amavis.schema&lt;br /&gt;
 include         pureftpd.schema&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
создаем временный каталог &lt;br /&gt;
 '''mkdir ldif_out'''&lt;br /&gt;
и теперь конвертируем схемы в ldif файлы&lt;br /&gt;
 '''slaptest -f schema.convert -F ldif_out'''&lt;br /&gt;
 config file testing succeeded&lt;br /&gt;
&lt;br /&gt;
Теперь изменяем конфиг ldif_out/cn=config/cn=schema/cn={4}phamm.ldif&lt;br /&gt;
 '''vi ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
чтобы получить следующее&lt;br /&gt;
 dn: cn=phamm,cn=schema,cn=config&lt;br /&gt;
 ...&lt;br /&gt;
 cn: phamm&lt;br /&gt;
и удаляем с конца ldif (дата и время могут оличатсья от приведенного нижк)&lt;br /&gt;
 structuralObjectClass: olcSchemaConfig&lt;br /&gt;
 entryUUID: 08bf1a06-7a89-102d-9fa6-4bee1e86d7f6&lt;br /&gt;
 creatorsName: cn=config&lt;br /&gt;
 createTimestamp: 20090119152440Z&lt;br /&gt;
 entryCSN: 20090119152440.275296Z#000000#000#000000&lt;br /&gt;
 modifiersName: cn=config&lt;br /&gt;
 modifyTimestamp: 20090119152440Z&lt;br /&gt;
тоже самое делаем для файлов &lt;br /&gt;
 cn={5}ISPEnv2.ldif&lt;br /&gt;
 cn={6}amavis.ldif&lt;br /&gt;
 cn={7}pureftpd.ldif&lt;br /&gt;
&lt;br /&gt;
стартуем ldap &lt;br /&gt;
 '''service ldap start''' &lt;br /&gt;
 '''chkconfig ldap on'''&lt;br /&gt;
&lt;br /&gt;
теперь загружаем схемы файлы в OpenLDAP (пароль используем тот который установили при установке ldap сервера)&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{4\}phamm.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{5\}ISPEnv2.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{6\}amavis.ldif'''&lt;br /&gt;
 '''ldapadd -x -D cn=admin,cn=config -W -f ldif_out/cn\=config/cn\=schema/cn\=\{7\}pureftpd.ldif'''&lt;/div&gt;</summary>
		<author><name>192.168.51.51</name></author>
		
	</entry>
</feed>