суббота, 23 июля 2011 г.

Коды STOP ошибок WINDOWS

Что значат ошибки виндоуз синий экран смерти?

Случаются такие ситуации, когда Windows XP самостоятельно перезагружается, что вызвано какой-то проблемой, ставящей под сомнение нормальное функционирование операционной системы. Чем это может быть спровоцировано, и как это предотвратить? В первую очередь, необходимо исключить возможность автоматической перезагрузки, чтобы система показала сообщение о произошедшей ошибке. Сделать это вы можете, используя такой путь: Пуск / Панель управления / Система / Дополнительно / Загрузка и восстановление / Параметры. Находим и убираем отметку «Выполнить автоматическую перезагрузку» в поле «Отказ системы». После этого, в случае ошибки, система не будете перезагружаться, а лишь выдаст на экран подробное сообщение. Однако и здесь кроется небольшая проблема: когда была выпущена русскоязычная Windows XP, разработчики почему-то исключили английский текст и из сообщений об ошибке. В результате перед нами уже всем, наверное, известный голубой экран смерти, представляющий собой, в основном, набор непонятных белых символов на синем фоне. Проблема в системе может случиться из-за чего угодно: оборудования, драйверов, некачественного программного обеспечения. Узнать причину в таком случае крайне сложно, так как текст на голубом экране невозможно прочитать, хотя он и несет очень важную и нужную информацию. Содержание текста может меняться в зависимости от ошибки, а вот формат всегда одинаков: имя ошибки, советы по ее устранению (далеко не всегда эффективные), номер и характеристики ошибки. Для большей наглядности рассмотрим следующий пример:
STOP: 0x000000D1 (0x00000000, 0x000000000, 0x00000000, 0xF8BCC2A4)
После слова STOP как раз и указаны последние из вышеописанных пунктов – номер (0x000000D1) и параметры ошибки (информация в скобках) в шестнадцатеричной системе. Кстати, ошибка, взятая в пример, - одна из самых распространенных. Она появляется в случае обращения к защищенному адресу памяти, недоступному для системы. Следующие данные – параметры – сигнализируют о таких характеристиках, как адрес ячейки памяти, по которому производилось обращение, номер прерывания, тип операции и адрес вызова. Иногда в конце экрана можно обнаружить имя драйвера, спровоцировавшего ошибку:
Nwiz.sys - Addres F8BCCA44 base at F8BCC000, DateStamp 33bb8f1d
Но не всегда данный драйвер необходимо заменять, иногда причиной неполадки является другая программа, виновная в отказе системы. В этом случае драйвер совершил правильную операцию, но система уже не смогла ее адекватно воспринять. Чтобы устранить неполадки, попробуйте запустить систему, выбрав защищенный режим, и отключить программу, спровоцировавшую сбой, или же удалить службу, используя консоль восстановления. Если вам не удалось зафиксировать код ошибки (система перезагружается автоматически), можно найти его следующим образом: Пуск / Панель управления / Администрирование / Просмотр событий / Система. Здесь вы найдете системный журнал, где, в большинстве случаев, сохраняется информация о номере и параметрах ошибки.

Если во время работы компьютера возникает системная ошибка, может появиться синий экран так называемый BSoD.


Рис. 1. Синий экран (BSoD)


Синий экран смерти (англ. Blue Screen of Death, BSoD) — сообщения о критической системной ошибке в операционных системах Microsoft Windows.
из синего экрана можно извлечь следующую информацию:

1. Наименование ошибки («1» на рисунке);

2. Параметры, поясняющие ошибку (цифры после слова STOP), значение параметров зависит от кода ошибки («2» на рисунке);

3. Адрес места ошибки и название драйвера, в котором возможно произошла ошибка («3» на рисунке);

А что обозначают эти параметры?привидем эту информацию ниже

Жирным шрифтом выделены коды ошибок которые могут встретиться:
!!! рекомендую пользоваться поиском ctrl+f !!!

0x0000000A

1 - адрес, по которому выполнено ошибочное обращение
2 - IRQL, который использовалcя для обращения к памяти
3 - тип доступа к памяти: 0 = операция чтения, 1 = операция записи
4 - адрес инструкции, которая затребовала доступ к памяти по данному адресу

Процесс, выполняемый в режиме ядра, или драйвер попытались обратиться к ячейке памяти, не имея к ней доступа. Эта ошибка возникает при сбойном (несовместимом) оборудовании или программным обеспечением. Обратите внимание на имя драйвера внизу экрана - это даёт шанс устранить проблему. Если подобная ошибка появляется в процессе установки, дело может быть в несовместимости ПО, антивирусной программе. Наиболее частая причина возникновения - драйвер устройства обращается к защищённой области памяти.

0x0000000D

1 - связь уровня взаимодействия
2 - уровень взаимодействия, пытающийся получить доступ

Найти точки взаимодействия и определить, какие из них пытаются получить доступ к этому уровню в неверной последовательности.

0x0000001A

MEMORY_MANAGEMENT
Указывает на общую проблему управления памяти.


0x0000001E

1 - код исключительной ситуации
2 - адрес, при обработке которого произошел сбой
3 - Parameter 0 для исключения
4 - Parameter 1 для исключения

Ядро Windows XP обнаружило некорректную или неизвестную команду процессора. Обычно это следствие ошибок оперативной памяти, нарушений доступа к памяти. Обратите внимание не только на указанный драйвер, но и на сам адрес содержащий эту ошибку. Код исключения 0x80000003 означает, что точка прерывания или суждение было достигнуто при обращении к памяти, но система загрузилась с /NODEBUG ключом. Если ошибка появляется снова, убедитесь, что отладчик не остановлен и система загружается с ключом /DEBUG. На не Интеловских системах, если адрес исключения 0XBFC0304, ошибка появляется вследствие кеширования процессора. Если ошибка будет появляться снова, свяжитесь с производителями. Как правило, требуется анализ второго параметра этого сообщения, который указывает на адрес драйвера (функции), которая была причиной проблемы.

0x00000020

1 - адрес APC, по которому был в ожидании на момент выхода
2 - связь APC счётчика невозможна
3 - текущий IRQ уровень

Название ошибки указывает на повреждённый (отключённый) APC счётчик. Если счётчик
показывает значение не равное нулю, то он и есть источник проблемы. Отрицательное значение указывает на то, что файловая система вызывала FsRtlEnterFileSystem большее количество раз чем FsRtlExitFileSystem. Положительное значение указывает наоборот FsRtlExitFileSystem было вызвано большее количество раз чем FsRtlEnterFileSystem. Если у вас такая ситуация, проверьте все файловые системы на машине, особенно, если у вас не NTFS, FAT, HPFS и RDR. Текущий IRQL должен быть равен 0. Если нет, то определённый порядок аннулирования драйверов может быть причиной возникновения ошибки, возвращаясь на высоком уровне IRQ. Вспомните, что вы делали или какие приложения закрывали, какие драйвера были установлены на момент возникновения синего экрана. Этот симптом указывает на серьёзную проблему в драйверах третьей стороны.

0x00000023

Проблема в драйвере файловой системы FAT (чаще всего сбой на диске).

0x00000024

Проблема в драйвере файловой системы NTFS (сбой на диске).

0x0000002A

1 - адрес на котором IRP (I/O Request Packet) был найден в несоответствующем состоянии IRP неожиданно был обнаружен в несоответствующем состоянии; это когда поле или несколько полей были несовместимы с сохранившемся состоянием IRP. Например, IRP,
который был закончен указывался, как всё ещё ждущий выполнения команд драйвера какого - либо устройства.

0x0000002B

Стэк переполнен. Это может возникнуть, когда драйвер ядра использует слишком много стэк- вызовов. Это может случиться при серьёзной ошибке в ядре.

0x0000002E

1 - адрес виртуальной памяти, который стал причиной ошибки
2 - физический адрес причины ошибки
3 - регистрация статуса процессора (PSR)
4 - регистрация инструкции ошибки (FIR)

Сбой или дефект оперативной памяти (ОЗУ), включая память видеоадаптера. Так же это может быть при обращении драйвера к адресу памяти 0x8XXXXXXX, который не существует.

0x00000031

1 - код статуса, который описывает почему система решила, что инициализация не произошла
2 - указывает место ошибки инициализации фазы 0.

Сбой инициализации системы на стадии загрузки.

0x00000032

1 - код статуса, который описывает почему система решила, что инициализация не произошла
2 - указывает место ошибки инициализации фазы 1.

Сбой инициализации системы на следующей стадии.

0x00000035

1 - адрес IRP

Драйвер высшего уровня пытался вызвать драйвер низшего уровня через IoCallDriver() интерфейс, но в запасе не было свободного места в стэке, поэтому драйвер низшего уровня не сможет достичь нужных параметров, так как для него вообще нет никаких параметров. Это гибельная ситуация, так как драйвер высшего уровня считает, что заполнил параметры для драйвера низшего уровня. Тем не менее, так как для последнего драйвера нет места в стэке, составитель аннулировал конец пакета. Это означает, что, скорее всего, какая-то другая память была повреждена.

0x00000036

1 - адрес объекта

Драйвер устройства пытался удалить из системы одно из объектов его устройства, но счётчик обращений этого объекта не был равен 0, означающий что для этого объекта всё ещё были невыполненные задачи (счётчик указывает номер причин, почему данный объект на может быть удалён). Это ошибка вызова драйвера.

0x00000037

Ошибка дисковода гибких дисков

0x0000003E

Мультипроцессорная система не поддерживается или не симметрична по отношению друг к другу. Чтобы быть симметричными, процессоры должны быть одного типа и уровня. Например, попытка
использовать процессор уровня Pentium и 80486 вызовет ошибку. Кроме того, на х86 системах, возможность вычислений с плавающей точкой должны быть на обоих процессорах или ни на одном.

0x0000003F

В системе закончились записи в таблице страниц. Не хватает РТЕ (Page File Entries). Обычно причиной является драйвер, который плохо вычищает файл подкачки или нет места на диске.

0x00000040

Драйвер вызвал функцию IoBuildPartialMdl() и послал ей MDL, чтобы выявить часть источника MDL, но MDL меньше, чем пределы требуемых адресов. Это ошибка драйвера.

0x00000044

1 - адрес IRP

Драйвер запросил завершение IRP [IoCompleteRequest()], но пакет был уже завершён. Эту ошибку сложно выявить, так как самый простой случай - драйвер пытается завершить одну и ту же операцию дважды - обычно не то, что случается на
самом деле. Реже - 2 различных драйвера пытаются завладеть пакетом и завершить его. Первый как правило срабатывает, а второй нет. Отследить, какой именно драйвер сделал это, трудно, так как следы первого драйвера были переписаны вторым. Тем не менее, конфликт может быть выявлен, рассматривая DeviceObject поля, в каждом местоположении стэка.

0x00000048

Это ошибка указывает, что I/O Request Packet (IRP), который должен быть завершён, имеет порядок отмены, означая, что пакет в таком положении, что может быть отменен. Тем не менее, пакет не относиться более к драйверу, так как он уже вошёл в стадию завершения.

0x00000049

Ошибка страницы с отключённым прерыванием.
Рассматривайте эту ошибку, так же как 0x0A.

0x0000004C

Winlogon или CSRSS (Windows) "умерли" внезапно. Выходящий код может сказать больше. Обычно это - c0000005, что говорит о том, что неподдерживаемое исключение рухнуло в том или другом процессе. Также возникает, если драйвер или системная библиотека были распознана, как повреждённые.

0x0000004D

1 - количество использованных страниц
2 - количество физических страниц

Нет больше свободного места, чтобы закончить операцию.

0x0000004E

1. значение 1
2. значение заголовков страниц, которые повреждены
3. число доступных страниц
4. 0

1. значение 2
2. данные, которые удаляются
3. наивысшее число физических страниц
4. итог удаляемых данных

Причина - повреждённая (неисправная) структура ввода - вывода драйвера.

0x00000050

1. указывает на ошибочный адрес в памяти

Драйвер устройства или системная служба запросили данные, которых не было в памяти. Это дефект ОЗУ или несовместимое ПО.

0x00000051

1. значение 1 (указывает, где появилась ошибка)
2. значение 2 (указывает, где появилась ошибка)
3. может указывать на библиотеку
4. может быть возвратным кодом HvCheckHive'а, если какая-либо библиотека повреждена

Ошибка реестра. Эта ошибка так же может означать, что реестр получил ошибку ввода - вывода, когда пытался прочесть один из его файлов. Ошибка могла быть вызвана проблемой с оборудованием или система повреждена. Это так же может означать, что ошибка вызвана операцией обновления, которую использует только система безопасности и это только когда ресурсы на исходе. Если такая ошибка появилась, проверьте, является ли машина PDC или BDC и сколько аккаунтов в базе данных SAM (Менеджер Безопасности Аккаунтов), и не заполнены ли соответствующие библиотеки почти до конца.

0x00000058

Система загрузилась с восстановленного первичного раздела, поэтому библиотеки говорят, что зеркало в порядке, но на самом деле это не так. Настоящие образы изменены.

0x00000069

Инициализация системы не удалась. Например, установка приняла не правильное решение по поводу инсталляции системы или пользователь
переконфигурировал систему.

0x00000073

1. 5
2. 2
3. список библиотек
4. указывает UNICODE_STRING, содержащий имя библиотеки указывает, что одна из системных библиотек повреждена или не читаема. Эта библиотека может быть или SOFTWARE, или SECURITY, или SAM (Менеджера Безопасности Аккаунтов).

0x00000074

Эта ошибка может показывать то, что библиотека SYSTEM, загружаемая NTLDR, повреждена. Тем не менее, это практически невозможно, так как OSLOADER всегда проверяет библиотеки после загрузки и убеждается, что они не повреждены. Эта ошибка так же может означать, что некоторые требуемые ключи реестра и их параметры отсутствуют. Загрузка в LastKnownGood (Последней хорошей конфигурации) может решить проблему.

0x00000075

На диске нет свободного места, так же это может произойти при попытке сохранить реестр на устройстве "только для чтения".

0x00000077

1. 0
2. 0
3. значение PTE на момент ошибки
4. адрес ошибки ядра

1. код статуса
2. I/O код статуса
3. номер страницы виртуальной памяти
4. Компенсация в страничный файл

Система попыталась считать данные ядра из виртуальной памяти (файла подкачки) и не смогла найти данные по указанному адресу. Причины - дефекты ОЗУ, сбои жёсткого диска, повреждение данных или заражение вирусной программой и т.п.

0x00000079

1. тип несовпадения (1, 2 или 3):
1. несовпадение уровней выпуска PRCB (несовпадение дат). Если дело в этом, то
параметры 2 и 3:
2 - больший уровень NTOSKRNL.EXE
3 - больший уровень HAL.DLL
2. несовпадение типов бильдов, в этом случае параметры 2 и 3:
2 - тип бильда NTOSKRNL.EXE
3 - тип бильда HAL.DLL
3. Micro Channel Architecture (MCA) компьютерам требуется специфичный MCA HAL, в
этом случае параметры 2 и 3:
2 - тип машины, определённый NTDETECT.COM
значение 2 означает, что компьютер - MCA
3 - тип машин, которые этот HAL поддерживает
значение 2 означает, что этот HAL сделан для MCA Это сообщение указывает на не соответствие между уровнем абстрагирования от оборудования Windows XP (Hardware Abstaction Layer - HAL) и системными файлами Windows XP. Причина - внезапное изменение параметров BIOSа на компьютерах с AСPI, например, установка жёсткого диска с системой в другой компьютер. Возможно пользователь вручную обновил либо NTOSKRNL.EXE либо HAL.DLL на несовместимые версии.

0x0000007A

Ошибка имеет ту же причину, что и ошибка 0х77: страница с данными ядра не найдены в виртуальной памяти (файле подкачки). Ошибка вызвана плохим блоком в памяти или ошибкой контроллера диска.


0x0000007B

1. указатель на объект устройства Не найден системный раздел или загрузочный том в процессе запуска. Проблема обычно в переразбиении дисков на разделы, добавлении новых дисков перед загрузочным. В результате записи в Boot.ini перестают соответствовать правильным разделам.

0x0000007D

1. номер найденных физических страниц
2. нижняя физическая страница
3. высшая физическая страница
4. 0

Не хватает памяти, чтобы загрузить Windows. Причина - дефект, либо слишком малая величина ОЗУ.

0x0000007F

1. конкретная причина

Появляется, когда процессор допускает ошибку, с которой ядро не может справиться. Чаще всего возникает из-за дефектов ОЗУ, остановке вентилятора процессора, а так же из-за разгона процессора и его перегреве.

0x0000008B

1 - дисковая сигнатура MBR.
2 - контрольная сумма MBR посчитанная загрузчиком системы
3 - контрольная сумма MBR сохранённая в системе.

Эта ошибка возникает в процессе загрузки, когда контрольная сумма MBR, которую посчитала система, не совпадает с контрольной суммой загрузчика. Обычно это означает вирус, т.к. некоторые вирусы могут быть не определены. Загрузитесь с диска и проверьте на вирусы.

0x0000008E

Это может случиться, если один из приведённых ниже вариантов применяется:

Один или несколько RAM модулей установленных на вашем компьютере не исправны.
Конфигурация RAM не совместима с Windows XP.
Решение:

1. Удалите некоторые модули RAM памяти и оставьте хотя бы столько, чтобы можно было запустить Windows XP.
Рекомендовано - 128, минимум - 64, максимум - 4Г.
2. Перезагрузите компьютер и запустите установку.
3. Если вы опять получаете этот же стоп, то переходите к пункту 4.
4. Попробуйте другой модуль или поставьте этот модуль в другой слот.
5. Перезагрузите компьютер и запустите установку снова.

Примечание: эта и ошибка 0x0000008E в большинстве случаев указывают на плохую RAM память.

0x00000092

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

0x00000098

Конец демонстрационного периода OC (для Trial- версий).

0x0000009C

Фатальная ошибка при проверке оборудования.

0x0000009F

Драйвер находится в неправильном или некорректном состоянии после завершения работы, перехода в ждущий (спящий) режим или восстановления из этих режимов.

0x000000B4

Сбой инициализации видео- драйвера. Перезагрузитесь в защищённом режиме и устраните конфликт оборудования или откатите новый драйвер.

0x000000B9

Обнаружены ошибки набора микросхем системной логики. Причина - неисправная материнская плата.

0x000000BE

Драйвер пытается записать в память только для чтения (ПЗУ).

0x000000C2

Некорректная операция выделения памяти. Причина - сбойный драйвер или ПО.

0x000000C4

Проверка версий драйверов обнаружима фатальную ошибка в драйвере ...

0x000000C5

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

0x000000C6

Драйвер обратился к пулу свободной памяти. Замените драйвер.

0x000000C7

Таймер ядра или Delayed Procedure Call (DPC) были найдены в недопустимой области памяти. Обысно это вызвано дефектом драйвера.

0x000000C9

Получен сигнал от драйвера о предупреждении проверки ввода - вывода.

0x000000CB

Аналогично ошибке 0x76. Указывает, что драйвер или подпрограмма ввода - вывода не сумели выгрузить оставшиеся страницы после завершения операции.

0x000000CE

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

0x000000D1

Драйвер обращается к недоступному адресу памяти.

0x000000D8

В системе закончились записи в таблице страниц. Не хватает РТЕ (Page File Entries). Обычно причиной является драйвер, который запрашивает у ядра слишком большие области памяти или нет места на диске (мал файл подкачки).

0x000000E3

Эта ошибка возникает при сбоях на файловой системе NTFS.

0x000000EA

Может появиться после установки нового видеоадаптера или обновлённого драйвера видеоадаптера, заставляющего систему ждать бесконечно долго при обращении к оборудованию. замените видеоадаптер или установите другой драйвер.

0x000000ED

Windows XP не смогла получить доступ к тому, содержащему загрузочные файлы. Смотри 0х7В.

0x000000F2

Ядро обнаружило "шторм прерываний", когда устройство не освобождает прерывание. Как правило это связано с некорректным драйвером устройства или ошибкой в "прошивке"

0x000000F3

Выключение Windows закончилось неудачей из - за недостатка памяти.

0x1000007E

Аналогично 0x7E.

0x1000008E

Аналогично 0x8E.


0xC000009A

Ядро Windows разместило всю доступную память в страницы пула..

0xC0000135

Обнаружена ошибка при загрузке библиотеки. Файл отсутствует или повреждён. Возможно повреждение реестра.

0xC0000142

Сбой инициализации библиотеки

0xC0000218

Необходимый файл улья реестра не был загружен. Файл модет быть повреждён или удалён. Файл реестра разрушен из -за ошибок на жёстком диске или ОЗУ.

0xC000021A

Возникла серьёзная проблема с безопасностью в Windows XP- в нарушении обвиняется Winlogon.exe или Csrss.exe. Эта ошибка возникает при неполном восстановлении архива, несоответствии версий системных файлов, а так же при некорректном изменении разрешений системных файлов, когда учётная запись System теряет доступ к системным файлам и папкам.

0xC0000221

Проблема с указанным файлом. Восстановите файл.

0xC0000244

Возникает при аудите политики безопасности, если CrashOnAuditFail включён.

0xC000026C

Не возможно загрузить драйвер устройства. Проблема в драйвере.

воскресенье, 10 июля 2011 г.

Программный RAID1 на FreeBSD постредством утилиты gmirror

Начал освоение этой замечательной системы на базе релиза 8.2
И сразу озаботился сохранностью данных.
Все работы производились в виртуальной машине Oracle Virtual Box с двумя виртуальными HDD одинаковой величины.
Базовая система установлена. Приступим к созданию программного зеркала.

gmirror -v -b round-robin gm0 /dev/ad0

Can't store metadata on /dev/ad0: Operation not permitted.

Не даёт писать на диск который используется. Правиться при помощи sysctl:
sysctl.geom.debugflags=16
gmirror -v -b round-robin gm0 /dev/ad0

Metadata value stored on /dev/ad0. Done.

в /etc/fstab меняем все устройтва начинающиеся с /dev/ad4XXX на /dev/mirror/gm0XXX, будьте крайне внимательны, не повторяйте самой распространенной ошибки, которая меня тоже не обошла стороной, я забыл после /dev/ указать mirror!

Далее набираем reboot и смотрим на поведение загрузки. Если все нормально прошло переходим к следующему этапу. Включаем в зеркало второй жесткий диск равного объема, /dev/ad1.


Однако, если после правки /etc/fstab загрузка будет остановлена, ожидая ввода. Например можно забыть ввести mirror, когда вы редактируете /etc/fstab, набирая /dev/gm0s1a вместо /dev/mirror/gm0s1a после чего FreeBSD не может найти корневую систему:
Mounting root from ufs:/dev/gm0s1a setrootbyname failed ffs_mountroot: can't find rootvp Root mount failed: 6  Manual root filesystem specification:   :  Mount  using filesystem              e.g. ufs:da0s1a   ?             List valid disk boot devices          Abort manual input  mountroot>

Fortunately, that's not as scary as it looks. Start by listing your valid disk boot devices:

mountroot> ?  List of GEOM managed disk devices:   mirror/gm0s1f mirror/gm0s1e mirror/gm0s1d mirror/gm0s1c mirror/gm0s1b  mirror/gm0s1a mirror/gm0s1 ad2s1 mirror/gm0 ad0s1 ad2 acd0 ad0 fd0

If you type in the correct location of the / filesystem, the system will continue to reboot:

mountroot> ufs:/dev/mirror/gm0s1a Mounting root from /dev/mirror/gm0s1a

После входа в систему необходимо отредактировать неверные строки в /etc/fstab и перезагрузиться снова. Когда получится загрузиться и войти в систему успешно - проверьте каждый раздел, смонтированный в зеркало.:

% df -h Filesystem            Size    Used    Avail    Capacity    Mounted on /dev/mirror/gm0s1a    248M     35M     193M       15%        / devfs                 1.0K    1.0K       0B      100%        /dev /dev/mirror/gm0s1e    248M     12K     228M        0%        /tmp /dev/mirror/gm0s1f    7.3G     99M     6.7G        1%        /usr /dev/mirror/gm0s1d    248M    196K     228M        0%        /var

df не выводит swap раздел, его можно проверить с помощью:

% swapinfo Device                1K-blocks    Used    Avail    Capacity /dev/mirror/gm0s1b       629544       0   629544        0%


Так же, с правами root набираем команду:

gmirror insert gm0 /dev/ad1


Тут есть ряд замечаний, во первых, этот диск не должен быть разделен на слайсы, во вторых, его размер должен точно соответствовать главному диску, допустимо чтобы он был немного больше, но не меньше! В противном случае команда включения этого диска не отработает и выдаст сообщение о тот что диск слишком мал по отношению к основному диску. В случае если второй диск, подключаемый к зеркалу будет немного или на много больше, диск являющийся основным и имеющий меньший размер будет приоритетным. Т.е. на втором диске будет занят под зеркало размер равный объему первого диска, все остальное пространство будет бессмысленно пустовать. Именно по этому рационально все же ставить диски одинакового размера.

Предположим что с объемами дисков у вас все в порядке и команда gmirror insert отработала нормально, для наблюдением за процессом синхронизации томов периодически набирайте команду:

gmirror status или gmirror list

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

И напоследок. В случае выхода одного из дисков в зеркале, например ad1 извлекаем его (при выключенной машине) заменяем на новый, соответствующего размера или больший и выполняем следующие команды:

gmirror forget gm0
gmirror insert gm0 /dev/ad1





разработка скрипта для мониторинга статуса зеркала

ключевая команда tail -f /var/log/messages | grep DEGRADED | /user/bin/mail -s "MIRROR" mail@mail.ru

gmirror status | grep -o DEGRADED

http://www.lissyara.su/articles/freebsd/tuning/software_raid1/
http://www.lissyara.su/articles/freebsd/file_system/gmirror/
http://onlamp.com/pub/a/bsd/2005/11/10/FreeBSD_Basics.html?page=2