Ошибка 0x00000027 при синем экране на терминальном сервере
Добрый день! Уважаемые читатели и гости одного из крупнейших блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы разобрали, как устанавливается Windows Server 2019 с последующей базовой настройкой, на текущий момент, это флагманская ОС у компании Microsoft. В сегодняшней публикации мы рассмотрим, причину синего экрана с кодом ошибки RDP-FILE-SYSTEM (rdbss.sys) и номером 0x00000027, которая у меня произошла на одном из хостов RDS фермы Windows Server 2012 R2.
Описание синего экрана RDP-FILE-SYSTEM
Как я и писал выше у меня есть RDS ферма из 20 хостов, в какой-то момент от системы мониторинга пришло уведомление, что один из терминалов стал неактивен. Когда я зашел в окно консоли данной виртуальной машины я обнаружил вот такое сообщение:
Если посмотреть логи Windows через просмотр событий или через Windows Admin Center, то можно обнаружить событие с кодом 1001.
Устраняем ошибку 0x00000027
Так как в моей системе после любого синего экрана создается дамп памяти, то я легко могу его прочитать. Не так давно я вам показывал, как искать причины синего экрана и рассказывал, как с помощью утилиты Microsoft Kernel Debugger, которая нам уже помогала в случаях:
RDR_FILE_SYSTEM (27)
If you see RxExceptionFilter on the stack then the 2nd and 3rd parameters are the
exception record and context record. Do a .cxr on the 3rd parameter and then kb to
obtain a more informative stack trace.
The high 16 bits of the first parameter is the RDBSS bugcheck code, which is defined
as follows:
RDBSS_BUG_CHECK_CACHESUP = 0xca550000,
RDBSS_BUG_CHECK_CLEANUP = 0xc1ee0000,
RDBSS_BUG_CHECK_CLOSE = 0xc10e0000,
RDBSS_BUG_CHECK_NTEXCEPT = 0xbaad0000,
Arguments:
Arg1: 00000000baad0073
Arg2: ffffd0002fcff9a8
Arg3: ffffd0002fcff1c0
Arg4: fffff800f7ca01f1
CPU_COUNT: 10
CPU_MHZ: bb1
CPU_VENDOR: GenuineIntel
CPU_FAMILY: 6
CPU_MODEL: 55
CPU_STEPPING: 4
DEFAULT_BUCKET_ID: ZEROED_STACK_0x27
BUGCHECK_STR: 0x27
CURRENT_IRQL: 0
ANALYSIS_SESSION_HOST: WIN-KHOH0LMOU9J
ANALYSIS_SESSION_TIME: 09-30-2019 23:46:23.0427
ANALYSIS_VERSION: 10.0.18362.1 amd64fre
LAST_CONTROL_TRANSFER: from 0000000000000000 to fffff801493bb3a0
STACK_TEXT:
ffffd000`2fcfe928 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : nt!KeBugCheckEx
THREAD_SHA1_HASH_MOD_FUNC: 81a83ae0317433a47fcc36991983df3b6e638b71
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 6e16edd8c7dd677734fdbcd2397a2e35e9fae964
THREAD_SHA1_HASH_MOD: 76cd06466d098060a9eb26e5fd2a25cb1f3fe0a3
SYMBOL_NAME: ANALYSIS_INCONCLUSIVE
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: Unknown_Module
IMAGE_NAME: Unknown_Image
DEBUG_FLR_IMAGE_TIMESTAMP: 0
STACK_COMMAND: .thread ; .cxr ; kb
BUCKET_ID: ZEROED_STACK_0x27
PRIMARY_PROBLEM_CLASS: ZEROED_STACK_0x27
FAILURE_BUCKET_ID: ZEROED_STACK_0x27
TARGET_TIME: 2019-09-30T10:24:35.000Z
OSBUILD: 9600
OSSERVICEPACK: 0
SERVICEPACK_NUMBER: 0
OS_REVISION: 0
SUITE_MASK: 16
PRODUCT_TYPE: 3
OSPLATFORM_TYPE: x64
OSNAME: Windows 8.1
OSEDITION: Windows 8.1 Server TerminalServer
OS_LOCALE:
USER_LCID: 0
OSBUILD_TIMESTAMP: 2019-06-06 19:46:22
BUILDDATESTAMP_STR: 190606-0600
BUILDLAB_STR: winblue_ltsb
BUILDOSVER_STR: 6.3.9600.19395.amd64fre.winblue_ltsb.190606-0600
ANALYSIS_SESSION_ELAPSED_TIME: 3742
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:zeroed_stack_0x27
THREAD_SHA1_HASH_MOD_FUNC: 1be0d1d1e06cef6c427e8a378dc08b4aaf4b225f
THREAD_SHA1_HASH_MOD_FUNC_OFFSET: 007b8b70715f4740669e8fea6b75a14c72d23e0f
THREAD_SHA1_HASH_MOD: bcd96958b75c3fa40db4ac85add3dadb4efd0d59
FOLLOWUP_IP:
rdbss!RxSelectPagingFileObject+51
fffff800`230041f1 f7405000000400 test dword ptr [rax+50h],40000h
FAULT_INSTR_CODE: 5040f7
SYMBOL_STACK_INDEX: 4
SYMBOL_NAME: rdbss!RxSelectPagingFileObject+51
FOLLOWUP_NAME: MachineOwner
MODULE_NAME: rdbss
IMAGE_NAME: rdbss.sys
DEBUG_FLR_IMAGE_TIMESTAMP: 5a4b1af3
IMAGE_VERSION: 6.3.9600.18895
STACK_COMMAND: .thread ; .cxr ; kb
BUCKET_ID_FUNC_OFFSET: 51
FAILURE_BUCKET_ID: AV_rdbss!RxSelectPagingFileObject
BUCKET_ID: AV_rdbss!RxSelectPagingFileObject
PRIMARY_PROBLEM_CLASS: AV_rdbss!RxSelectPagingFileObject
TARGET_TIME: 2019-08-29T05:33:28.000Z
OSBUILD: 9600
OSSERVICEPACK: 19395
SERVICEPACK_NUMBER: 0
OS_REVISION: 0
SUITE_MASK: 16
PRODUCT_TYPE: 3
OSPLATFORM_TYPE: x64
OSNAME: Windows 8.1
OSEDITION: Windows 8.1 Server TerminalServer
OS_LOCALE:
USER_LCID: 0
OSBUILD_TIMESTAMP: 2019-06-06 19:46:22
BUILDDATESTAMP_STR: 190606-0600
BUILDLAB_STR: winblue_ltsb
BUILDOSVER_STR: 6.3.9600.19395.amd64fre.winblue_ltsb.190606-0600
ANALYSIS_SESSION_ELAPSED_TIME: 727a
ANALYSIS_SOURCE: KM
FAILURE_ID_HASH_STRING: km:av_rdbss!rxselectpagingfileobject
FAILURE_ID_HASH: {58a51f38-e10b-8e72-9005-72ae0623b37e}
Followup: MachineOwner
---------
11: kd> lmvm rdbss
Browse full module list
start end module name
fffff800`23000000 fffff800`2306e000 rdbss (pdb symbols) C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\sym\rdbss.pdb\B2DD7E21017744368743EEA8B3A12C872\rdbss.pdb
Loaded symbol image file: rdbss.sys
Mapped memory image file: C:\Program Files (x86)\Windows Kits\10\Debuggers\x64\sym\rdbss.sys\5A4B1AF36e000\rdbss.sys
Image path: \SystemRoot\system32\DRIVERS\rdbss.sys
Image name: rdbss.sys
Browse all global symbols functions data
Timestamp: Mon Jan 1 22:38:59 2018 (5A4B1AF3)
CheckSum: 00065E62
ImageSize: 0006E000
File version: 6.3.9600.18895
Product version: 6.3.9600.18895
File flags: 0 (Mask 3F)
File OS: 40004 NT Win32
File type: 3.7 Driver
File date: 00000000.00000000
Translations: 0409.04b0
Information from resource tables:
CompanyName: Microsoft Corporation
ProductName: Microsoft® Windows® Operating System
InternalName: rdbss.sys
OriginalFilename: RDBSS.Sys
ProductVersion: 6.3.9600.18895
FileVersion: 6.3.9600.18895 (winblue_ltsb.180101-1800)
FileDescription: Redirected Drive Buffering SubSystem Driver
LegalCopyright: Microsoft Corporation. All rights reserved.
Что такое rdbss.sys?
Как видно из отчета, вся проблема с драйвером rdbss.sys. The Redirected Drive Buffering SubSystem (rdbss.sys) - это драйвер подсистемы перенаправленного диска. Подсистема перенаправленной дисковой буферизации (RDBSS) предоставляется в виде драйвера файловой системы режима ядра, который входит в состав операционной системы, и в качестве статической библиотеки rdbsslib.lib, которая входит в комплект драйверов Windows (WDK). Статическая библиотека дублирует код в драйвере режима ядра rdbss.sys .
Первоначальная схема состояла в том, что все сетевые мини-редиректоры будут динамически связываться с драйвером ядра rdbss.sys. Драйверы, которые динамически связаны с rdbss.sys , называются немонолитными драйверами. Однако эта функция никогда не была полностью реализована, поэтому только сетевой мини-перенаправитель Microsoft SMB динамически связывается с rdbss.sys и является немонолитным драйвером. Все остальные сетевые мини-редиректоры, включая другие перенаправители Microsoft, включенные в операционную систему, связаны с библиотекой rdbsslib.lib и статически содержат тот же код, что и драйвер ядра rdbss.sys. Хотя один и тот же исходный код RDBSS используется как в драйвере rdbss.sys, так и в файле rdbsslib.lib библиотеки, размер монолитного сетевого драйвера мини-перенаправителя больше, так как большая часть кода в rdbss.sys включена в каждый драйвер.
Причин по которым данный драйвер может повести себя некорректно не много и чаше всего они связаны с:
- Утилитой FAR Manager из которой вы на RDS хосте обращаетесь к своим локальным дискам \\tsclient
- Перемещаемые профили
- Обновления Windows
- Несоответствие версий SMB
- Вирус и вредоносное ПО
- BIOS и драйверы
Первым делом, когда вы получили синий экран смерти с RDP-FILE-SYSTEM (rdbss.sys) и номером 0x00000027, я вам советую перевести ваш RDSH хост в режим стока, чтобы к нему никто больше не мог подключаться, на время вашего ремонта. Компания Microsoft, вроде бы отчиталась, что данную ошибку они решили аж в 2018 году, выпустив обновление. Поэтому первым делом я вам советую произвести установку обновлений. Так как у меня, это Windows Server 2012 R2, то я открываю "окно Выполнить" и ввожу wuapp.
Производите поиск доступных обновлений, в моем примере нашлось 37 обновлений, их стоит установить.
Следующим этапом после перезагрузки сервера, я бы попробовал проверить данный сервер на наличие проблем с системными файлами их их повреждением, ошибками на исках. Откройте командную строку от имени администратора и введите команду, которая все сделает красиво:
Первой у нас отработает утилита SFC, она проверит нашу систему на предмет битых файлов и постарается их восстановить. Хочу отметить, что процесс не быстрый и может занимать минут 15-20. Как видно из моего скриншота, поврежденное хранилище компонентов успешно восстановлено.
Далее у нас вступает в работу утилита DISM. На конечном этапе нам необходимо перезагрузить сервер, чтобы утилита CHKDSK смогла проверить системный диск на наличие ошибок.
Если у вас после обновлений и проверки целостности системных файлов, все продолжают появляться синие экраны с ошибкой 0x00000027, то пробуем обновить драйвера. Если физический сервер, то заходите на сайт производителя и скачиваете все или можете установить сразу скопом. Если у вас виртуальная машина, как и у меня на гипервизоре VMware ESXI 6.5, то попробуйте установить свежую версию VMTools драйверов интеграции. Так же я вам советую загрузиться в безопасном режиме Windows и проверить на наличие вирусов вашу систему.
Синий экран RDP-FILE-SYSTEM из-за сторонних программ
Продолжив изучать данную ошибку 0x00000027, я наткнулся на ветку обсуждения на сайте Mirosoft, где обсуждалось, что данный BSOD был вызван утилитой FAR Manager.
Со стороны FAR Manager ситуация такова, что он активно использует Native API, и для операций с каталогами использует не классические функции модуля kernel32 (FindFirstFile/FindNextFile), а функции модуля ntdll (NtQueryDirectoryFile). Возможно, здесь и получается какая-то неожиданная комбинация параметров/вызовов, которую разработчики rdbss.sys не учли (система падает на NtClose, когда идёт очистка открытого объекта файла).
Еще я находил случаи, когда старое приложение NetWorx с фильтром TDI вызывало синий экран 0x00000027. Обязательно проверьте логи вашего антивируса если он есть, так как они любят встраивать свои драйвера в сетевой стек Windows. Надеюсь, что вам поможет, это решить данную проблему с синим экраном. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.