вторник, 11 августа 2009 г.

Как убить ZFS root pool

Вы не поверите, коллеги, но при всей легендарной устойчивости ZFS ко всякого рода шаловливой деятельности админов, существует-таки вполне легитимный способ ушатать ее - да не что попало, а зеркалированный root pool, это воплощение надежности!

Впрочем, давайте по порядку.

Ноги, как всегда, растут из той незыблемой аксиомы, что вдумчиво курил маны и знал их наизусть лишь один Чорный Сисадмин.

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

Факт номер два, неочевидный. При создании ZFS пула с использованием сокращенной нотации дисков (то есть cxtydz вместо, скажем, cxtydzs0) командой zpool create c0t0d0, на указанном диске без единого предупреждения выносится метка диска и вместо нее записывается метка EFI, с единственным слайсом на весь диск. То же самое произойдет и при выполнении соманды zpool attach [имя пула] c0t1d0s0 c0t0d0. На диске c0t0d0 будет создана метка EFI и он будет приаттачен к пулу, даже если это root pool*.

_____________________________
* Теперь это не особенность, а баг 6740164. В обновлении в конце статьи дополнительная информация.

Факт номер три. Диск с EFI-меткой не является загружаемым в текущих релизах Солярис при использовании ZFS.

Хотя думающий прямо сисадмин и не станет пытаться ставить или мигрировать ZFS root pool не на слайсы, иногда это пытаются сделать, проигнорировав предупреждение мануала.

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

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

Итак, вперед и с песней. Поехали резать кошек.

На исходной позиции мы имеем свежеотмигрированную систему Solaris 10 5/09 на единственном слайсе s0:

server5# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c0t1d0s0 ONLINE 0 0 0

errors: No known data errors

Приаттачим теперь к пулу второй диск в сокращенной нотации и посмотрим, получится ли:

server5# zpool attach -f rpool c0t1d0s0 c0t0d0
server5# zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h0m, 0.15% done, 0h32m to go
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t1d0s0 ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0

errors: No known data errors

Так, защита от дурака не сработала, приаттачился. Собственно, почему от дурака? Все вполне легитимно. Сказано же в манах, что пул может быть собран из чего угодно - из целых дисков, слайсов, файлов...

Проверим факт номер два:

server5# format -e
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
1. c0t1d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
Specify disk (enter its number): 0
selecting c0t0d0
[disk formatted]
/dev/dsk/c0t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M).

FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
inquiry - show vendor, product and revision
scsi - independent SCSI mode selects
cache - enable, disable or query SCSI disk cache
volname - set 8-character volume name
! - execute , then return
quit
format> partition

PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
8 - change '8' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> print
Current partition table (original):
Total disk sectors available: 143358320 + 16384 (reserved sectors)

Part Tag Flag First Sector Size Last Sector
0 usr wm 256 68.36GB 143358320
1 unassigned wm 0 0 0
2 unassigned wm 0 0 0
3 unassigned wm 0 0 0
4 unassigned wm 0 0 0
5 unassigned wm 0 0 0
6 unassigned wm 0 0 0
7 unassigned wm 0 0 0
8 reserved wm 143358321 8.00MB 143374704

И правда, метка EFI! Тем временем у нас завершился ресильверинг, пул вполне себе здоров:

server5# zpool status
pool: rpool
state: ONLINE
scrub: resilver completed after 0h3m with 0 errors on Tue Aug 11 12:48:20 2009
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t1d0s0 ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0

errors: No known data errors

Теперь смертельный номер. Сейчас мы попытаемся нарушить ограничения и переаттачим первый диск пула как весь диск:

server5# zpool detach rpool c0t1d0s0
server5# zpool status
pool: rpool
state: ONLINE
scrub: resilver completed after 0h3m with 0 errors on Tue Aug 11 12:57:01 2009
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0

errors: No known data errors

server5# zpool attach rpool c0t0d0 c0t1d0
server5# zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h0m, 0.17% done, 0h29m to go
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0
c0t1d0 ONLINE 0 0 0

errors: No known data errors

Йо-хо-хо, у нас zfs root pool на целых дисках с EFI-метками! Конец света!

Нельзя ли прямо сейчас, пока мы не перезагрузились, вернуть все взад?

server5# zpool detach rpool c0t0d0
server5# zpool status
pool: rpool
state: ONLINE
scrub: resilver completed after 0h3m with 0 errors on Tue Aug 11 13:05:36 2009
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c0t1d0 ONLINE 0 0 0

errors: No known data errors
server5# format -e
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
1. c0t1d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
Specify disk (enter its number): 0
selecting c0t0d0
[disk formatted]

FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
inquiry - show vendor, product and revision
scsi - independent SCSI mode selects
cache - enable, disable or query SCSI disk cache
volname - set 8-character volume name
! - execute , then return
quit
format> label
[0] SMI Label
[1] EFI Label
Specify Label type[1]: 0
Warning: This disk has an EFI label. Changing to SMI label will erase all
current partitions.
Continue? y
Auto configuration via format.dat[no]?
Auto configuration via generic SCSI-2[no]?
format> partition

PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> print
Current partition table (default):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 25 129.19MB (26/0/0) 264576
1 swap wu 26 - 51 129.19MB (26/0/0) 264576
2 backup wu 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 usr wm 52 - 14086 68.10GB (14035/0/0) 142820160
7 unassigned wm 0 0 (0/0/0) 0

partition> 6
Part Tag Flag Cylinders Size Blocks
6 usr wm 52 - 14086 68.10GB (14035/0/0) 142820160

Enter partition id tag[usr]: unassigned
Enter partition permission flags[wm]:
Enter new starting cyl[52]: 0
Enter partition size[142820160b, 14035c, 14034e, 69736.41mb, 68.10gb]: 0gb
partition> 0
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 25 129.19MB (26/0/0) 264576

Enter partition id tag[root]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]: 0
Enter partition size[264576b, 26c, 25e, 129.19mb, 0.13gb]: 14086e
partition> label
[0] SMI Label
[1] EFI Label
Specify Label type[0]: 0
Ready to label disk, continue? y

partition> ^D
server5#

server5# zpool attach -f rpool c0t1d0 c0t0d0s0
cannot attach c0t0d0s0 to c0t1d0: device is too small

Соотношения разделов s0 SMI и EFI:

Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 14086 68.35GB (14087/0/0) 143349312
1 swap wu 26 - 51 129.19MB (26/0/0) 264576
2 backup wu 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0

Total disk sectors available: 143358320 + 16384 (reserved sectors)

Part Tag Flag First Sector Size Last Sector
0 usr wm 256 68.36GB 143358320
1 unassigned wm 0 0 0
2 unassigned wm 0 0 0
3 unassigned wm 0 0 0
4 unassigned wm 0 0 0
5 unassigned wm 0 0 0
6 unassigned wm 0 0 0
7 unassigned wm 0 0 0
8 reserved wm 143358321 8.00MB 143374704

server5# format -e
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
1. c0t1d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
Specify disk (enter its number): 0
selecting c0t0d0
[disk formatted]

FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
save - save new disk/partition definitions
inquiry - show vendor, product and revision
scsi - independent SCSI mode selects
cache - enable, disable or query SCSI disk cache
volname - set 8-character volume name
! - execute , then return
quit
format> partition

PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> 0
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 14086 68.35GB (14087/0/0) 143349312

Enter partition id tag[root]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]: 0
Enter partition size[143349312b, 14087c, 14086e, 69994.78mb, 68.35gb]: 143358320b
`143358320b' is out of the range 0 to 143349312
Enter partition size[143349312b, 14087c, 14086e, 69994.78mb, 68.35gb]:

Оба-на, низ-зя! Диски одинаковые, а слайсы с метками EFI и SMI разные по размеру, мизерно разные - 0,01 Гб, сиречь восемь секторов - однако уже ничего влегкую назад не вернуть.

Если сейчас перезагрузиться, гибель системы (точнее, невозможность стартовать ее с зеркального пула) неизбежна. Впрочем, она стала неизбежной в тот самый момент, когда мы переаттачили второй диск и оба диска стали иметь метку EFI:

server5# zpool status
pool: rpool
state: ONLINE
scrub: resilver completed after 0h3m with 0 errors on Tue Aug 11 13:53:49 2009
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t1d0 ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0

errors: No known data errors

server5# init 6
server5# svc.startd: The system is coming down. Please wait.
svc.startd: 94 system services are now being stopped.
svc.startd: The system is down.
syncing file systems... done
rebooting...

SC Alert: Host System has Reset
Probing system devices
Probing memory
Probing I/O buses
screen not found.
keyboard not found.
Keyboard not present. Using ttya for input and output.
Probing system devices
Probing memory
Probing I/O buses

Sun Fire V215, No Keyboard
Copyright 2008 Sun Microsystems, Inc. All rights reserved.
OpenBoot 4.30.0.a, 1024 MB memory installed, Serial #80951694.
Ethernet address 0:14:4f:d3:39:8e, Host ID: 84d3398e.

Rebooting with command: boot
Bad magic number in disk label
Can't open disk label package
Boot device: /pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/disk@0,0:a File and args:
Bad magic number in disk label
Can't open disk label package
Evaluating:

Can't open boot device

ok

Ой. Померла.

Если, однако не перезагружаться или если останется хотя бы одно зеркало на слайсе, вернуть систему в исходное положение все же можно. Просто детачим EFI-зеркала, переразбиваем их с помощью format -e и возвращаемся к правильному положению легко и просто.

Но мы же храбрые парни, ломать так ломать.

Итак, померла покойница. Бедный многострадальный server5, предлагаю почтить его память вста...

Вопрос первый. Можно ли для начала хотя бы достать с пула какие-нибудь данные? (В крайнем случае, брутально переустановим систему, да?)

ok boot net -s

........

# zpool import
pool: rpool
id: 16520876323152732858
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

rpool ONLINE
mirror ONLINE
c0t1d0 ONLINE
c0t0d0 ONLINE
# zfs list
no datasets available
# zpool import rpool
cannot mount '/rpool': failed to create mountpoint
cannot mount '/rpool/ROOT': failed to create mountpoint
# zfs list
NAME USED AVAIL REFER MOUNTPOINT
rpool 9.08G 57.9G 95K /rpool
rpool/ROOT 6.58G 57.9G 18K /rpool/ROOT
rpool/ROOT/zfsBE 6.58G 57.9G 6.58G /
rpool/dump 512M 57.9G 512M -
rpool/swap 2.00G 59.9G 16K -

Гхм. Пул импортировался. Можно монтировать датасет и выволакивать данные.

(Да, я в курсе, что политкорректно будет сменить точку монтирования пула на /a и после этого уже достукиваться до контента пула итп. Процитированная выше последовательность написана для представителей интеллектуального большинства ;) )

Однако - нельзя ли все же что-нибудь втереть или вправить или еще что-нибудь, дабы не поступать по-окошечному, и не переустанавливаться?

# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t1d0 ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0

errors: No known data errors
# zpool detach rpool c0t1d0
# zpool status
pool: rpool
state: ONLINE
scrub: none requested
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0

errors: No known data errors
# format -e
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
1. c0t1d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
Specify disk (enter its number): 1
selecting c0t1d0
[disk formatted]

FORMAT MENU:
disk - select a disk
type - select (define) a disk type
partition - select (define) a partition table
current - describe the current disk
format - format and analyze the disk
repair - repair a defective sector
label - write label to the disk
analyze - surface analysis
defect - defect list management
backup - search for backup labels
verify - read and display labels
inquiry - show vendor, product and revision
scsi - independent SCSI mode selects
cache - enable, disable or query SCSI disk cache
volname - set 8-character volume name
! - execute , then return
quit
format> label
[0] SMI Label
[1] EFI Label
Specify Label type[1]: 0
Warning: This disk has an EFI label. Changing to SMI label will erase all
current partitions.
Continue? y
Auto configuration via format.dat[no]?
Auto configuration via generic SCSI-2[no]?
format> partition

PARTITION MENU:
0 - change `0' partition
1 - change `1' partition
2 - change `2' partition
3 - change `3' partition
4 - change `4' partition
5 - change `5' partition
6 - change `6' partition
7 - change `7' partition
select - select a predefined table
modify - modify a predefined partition table
name - name the current table
print - display the current table
label - write partition map and label to the disk
! - execute , then return
quit
partition> print
Current partition table (default):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 25 129.19MB (26/0/0) 264576
1 swap wu 26 - 51 129.19MB (26/0/0) 264576
2 backup wu 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 usr wm 52 - 14086 68.10GB (14035/0/0) 142820160
7 unassigned wm 0 0 (0/0/0) 0

partition> 6
Part Tag Flag Cylinders Size Blocks
6 usr wm 52 - 14086 68.10GB (14035/0/0) 142820160

Enter partition id tag[usr]: unassigned
Enter partition permission flags[wm]:
Enter new starting cyl[52]: 0
Enter partition size[142820160b, 14035c, 14034e, 69736.41mb, 68.10gb]: 0gb
partition> 1
Part Tag Flag Cylinders Size Blocks
1 swap wu 26 - 51 129.19MB (26/0/0) 264576

Enter partition id tag[swap]: unassigned
Enter partition permission flags[wu]:
Enter new starting cyl[26]: 0
Enter partition size[264576b, 26c, 25e, 129.19mb, 0.13gb]: 0gb
partition> 0
Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 25 129.19MB (26/0/0) 264576

Enter partition id tag[root]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]: 0
Enter partition size[264576b, 26c, 25e, 129.19mb, 0.13gb]: 14086e
partition> print
Current partition table (unnamed):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part Tag Flag Cylinders Size Blocks
0 root wm 0 - 14086 68.35GB (14087/0/0) 143349312
1 unassigned wu 0 0 (0/0/0) 0
2 backup wu 0 - 14086 68.35GB (14087/0/0) 143349312
3 unassigned wm 0 0 (0/0/0) 0
4 unassigned wm 0 0 (0/0/0) 0
5 unassigned wm 0 0 (0/0/0) 0
6 unassigned wm 0 0 (0/0/0) 0
7 unassigned wm 0 0 (0/0/0) 0

partition> label
[0] SMI Label
[1] EFI Label
Specify Label type[0]: 0
Ready to label disk, continue? y

partition> ^D
#

# zpool attach -f rpool c0t0d0 c0t1d0s0
cannot attach c0t1d0s0 to c0t0d0: device is too small

Не получается. Диски одинаковые, слайс максимальный, а, поскольку SMI-слайс чуть меньше чем с EFI - не получается. Что и требовалось доказать.

Неужели песец?

Окей, мы еще потанцуем. Так как мы влипли из-за предельного размера слайсов, отцепим одно из зеркал и попробуем приаттачить диск большего размера, только уже с нормальной меткой и слайсом во весь размер:

# format -e
Searching for disks...done

AVAILABLE DISK SELECTIONS:
0. c0t0d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@0,0
1. c0t1d0
/pci@1e,600000/pci@0/pci@a/pci@0/pci@8/scsi@1/sd@1,0
Specify disk (enter its number): ^D

# zpool attach -f rpool c0t0d0 c0t1d0s0
# zpool status
pool: rpool
state: ONLINE
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scrub: resilver in progress for 0h0m, 0.17% done, 0h19m to go
config:

NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror ONLINE 0 0 0
c0t0d0 ONLINE 0 0 0
c0t1d0s0 ONLINE 0 0 0

errors: No known data errors

Порядок. Остается отключить диск c0t0d0 и аналогично сделать реаттач в зеркало второго большего диска, предварительно создав на нем метку SMI и слайс 0 (гм, я не уверен, что это для всех менее брутальный, чем переустановка, способ ;)).

Есть ли менее варварский способ вернуть к жизни систему, приведенную в незагружаемое состояние описанным выше способом?

Теоретически - есть (на практике я этого не проверял ввиду отсутствия свободного времени).

Если сделать снапшот пула (до или после перезагрузки - после импорта), отправить его конвейером на другой локальный диск, скажем, размеченный в UFS (ну или по сети), переразбить исходные диски и восстановить описанным здесь способом со снапшота - есть хорошая вероятность не искать два новых диска большего размера.

Короче говоря, дорогие коллеги. Курите мануалы вдумчиво до возникновения проблемы - и вас не посетит Чорный Сисадмин.

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

Собственно, проблема в данном случае лишь одна и она сидит перед консолью. ;) Гибкость, которую предоставляет ZFS своим адептам, может быть опасной в некоторых кудрявых /dev/hands, кои /dev/hands заставляют вспомнить не к ночи помянутый режим "DEFAULT - Я недоумок" в Windows Vista. :)

Запомните, днентльмены. UNIX не считает своего админа (и даже пользователя) недоумком по определению, следовательно, такой режим ей глубоко чужд. "Используй голову, Люк!"

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

"Фокусы - это ловкость рук, и никакого мошенства!"

Обновление от 12 августа 2009
_______________________

Кому-то эта особенность настолько сильно встала поперек горла, что ее посчитали багом (причем неоднократно, и здесь тоже) и исправили патчем ZFS 141909-02.

Режим "Админ-тоже недоумок" (хотя, казалось бы, прочитать мануал, где это было задокументировано с самого начала, что, большие трудности?) в действии.

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