Своп поломалася

Коллеги, фигня тут какая-то со свопом. Когда случилось -- не знаю, обратил внимание где-то неделю назад, когда обнаружил возбудившийся OOM-KILLER.

# uname -a
Linux pioneer 3.5.7-gentoo-generic #1 SMP Sun Nov 4 04:04:01 MSK 2012 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz GenuineIntel GNU/Linux
# swapon -V
swapon (util-linux 2.21.2)
# mkswap -V
mkswap from util-linux 2.21.2
# mkswap /dev/sdb2
Setting up swapspace version 1, size = 3145724 KiB
no label, UUID=11dcc6ea-bf9d-4600-bb8b-4a65741b4ab3
# swapon /dev/sdb2
swapon: /dev/sdb2: read swap header failed: Invalid argument

Та же операция с файлом такого же размера проходит "на ура".

# dd if=/dev/zero of=/home/internal/files00/swap00.fs bs=1M count=3072
3072+0 records in
3072+0 records out
3221225472 bytes (3.2 GB) copied, 86.5716 s, 37.2 MB/s
# mkswap /home/internal/files00/swap00.fs
Setting up swapspace version 1, size = 3145724 KiB
no label, UUID=3ed57bbc-2d49-4589-9052-4550ab739f89
# swapon /home/internal/files00/swap00.fs
# swapon -s
Filename                         Type         Size     Used     Priority
/home/internal/files00/swap00.fs file         3145724  0        -1
#

Грешил на глючащий винт, но сейчас поставил свежий винт, та же фигня...

До кучи с другими двумя винтами на той же машинке тоже какая-то фигня:

...
Device    Boot Start End     Blocks  Id System
/dev/sdc1      2048  4196351 2097152 82 Linux swap / Solaris
...
# swapon /dev/sdc1
swapon: /dev/sdc1: read swap header failed: Inappropriate ioctl for device

Такая же поганка со вторым точно таким же винтом. Оба этих винта одинаковы, по 1ТБ, на каждом отрезана партиция 2Г под своп, остальное -- отдано под миррорку md.

Гуглится по соответвующим запросом не совсем внятное, то есть не помогает -- советы сводятся к тому, что "mkswap ещё раз" и ответом "о, помогло".

.

dmesg | grep -iw 'failed'
выдаёт что-то похожее:

dmesg написал(а):
ata1.00: failed to get Identify Device Data, Emask 0x1

?

Ничего похожего.

Ничего похожего.

Ну так и сделай swapoff

Ну так и сделай

swapoff /dev/sdc1
mkswap /dev/sdc1
swapon /dev/sdc1

Ну я не совсем дебил-то.

Ну я не совсем дебил-то. Пробовал переделывать своп, получаю те же тестикулы. На дисках, в смысле. На файле всё время всё ок.

sudo -i bash wi ~ # echo p |

sudo -i bash
wi ~ # echo p | fdisk /dev/sda | grep 82
Welcome to fdisk (util-linux 2.21.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Disk /dev/sda: 250.1 GB, 250058268160 bytes
/dev/sda2 112455 16129259 8008402+ 82 Linux своп / Solaris

Вот все партиции, на которых

Вот все партиции, на которых эвфехт примерно одинаковый.

# fdisk -l /dev/sda | grep swap
/dev/sda2          264192     6555647     3145728   82  Linux swap / Solaris
# fdisk -l /dev/sdb | grep swap
/dev/sdb1            2048     4196351     2097152   82  Linux swap / Solaris
# fdisk -l /dev/sdc | grep swap
/dev/sdc1            2048     4196351     2097152   82  Linux swap / Solaris

Разница в том, что на 2 последних последняя ошибка -- inapropriate ioctl почему-то. Точнее, примерно понятно почему.

См. ветку ниже.

Покажи

emerge -pv sys-fs/udev
zgrep -i devtmpfs /proc/config.gz
mount | grep "/dev "

На это только что натыкался

На это только что натыкался при апгрейде ;) udev 197й, ядро поправил. Более того, поменял комп, на новый диск перетащил содержимое старого. Те же тестикулы ;(

По ЖЖшным советам подебагил swapon, результат немного удивил.

1. Так выглядит результат (часть его) swapon на файле, который вполне себе нормально монтируется.

...
Breakpoint 2, swap_detect_signature (buf=0x8052746 "SWAPSPACE2I:86185\nE:ID_VENDOR_FROM_DATABASE=Microsoft\n", sig=0xbfffed40) at swapon.c:355
355	in swapon.c
$1 = "swap_detect_signature(): return 1"
...

2. Так выглядит часть результата на ФС, которая в итоге не монтируется:

...
Breakpoint 1, swap_detect_signature (buf=0x80526ee "WAPSPACE2", sig=0xbfffed40) at swapon.c:353
353	in swapon.c
$1 = "swap_detect_signature(): return 0"
...

То бишь почему-то оно с диска читает, промахиваясь на 1 байт ;( Откуда это -- совершенно не понимаю. Если это была бы регулярная ошибка -- почему работает всё остальное?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".