Каждый раз, когда я пытаюсь установить LUKS на моей установке CentOS на материнской плате Supermicro A2SDi-8C-HLN4F (Intel ATOM CPU C3758), все работает нормально, пока процесс полностью зависает при создании файловой системы (ext4) или попытке смонтировать файловую систему (xfs). Не имеет значения, пытаюсь ли я включить его с помощью директивы —encrypted
в моей конфигурации кикстарта или попытаюсь сделать это на физическом диске (/ dev / sde), устройстве RAID (/ dev / md127), физический том или логический том в LVM или даже файл с обратной связью (/ dev / loop0). Та же проблема обнаруживается как в CentOS 7.7, так и в 8.1.
Я где-то читал, что память может быть проблемой, поэтому я переключил свои два модуля DIMM и запустил MemTest86 + с ошибками 0.
Шаги, используемые при попытке создать файловую систему на устройства, указанные выше:
cryptsetup --force-password luksFormat
cryptsetup luksOpen
mkfs -t ext4 / dev / mapper /
Во время выполнения команды mkfs , процесс неизменно зависает, и процесс (или, скорее, дочерний процесс mkfs.ext4) не может быть уничтожен, даже с помощью kill -9
.
Через некоторое время в my dmesg:
[ 492.528687] Not tainted 4.18.0-147.5.1.el8_1.x86_64 #1
[ 492.528719] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 492.528764] kworker/u17:0 D 0 4238 2 0x80000080
[ 492.528777] Workqueue: kcryptd/253:3 kcryptd_crypt [dm_crypt]
[ 492.528778] Call Trace:
[ 492.528787] ? __schedule+0x253/0x830
[ 492.528791] ? mempool_alloc+0x67/0x190
[ 492.528793] schedule+0x28/0x70
[ 492.528795] schedule_timeout+0x26d/0x390
[ 492.528803] ? qat_alg_sgl_to_bufl.isra.11+0x456/0x770 [intel_qat]
[ 492.528807] ? dma_direct_unmap_page+0x7a/0x80
[ 492.528809] wait_for_completion+0x11f/0x190
[ 492.528811] ? wake_up_q+0x70/0x70
[ 492.528814] crypt_convert+0xa13/0xf00 [dm_crypt]
[ 492.528818] ? bio_alloc_bioset+0xdc/0x210
[ 492.528820] ? __switch_to_asm+0x41/0x70
[ 492.528822] ? __switch_to_asm+0x35/0x70
[ 492.528825] kcryptd_crypt+0x2f3/0x3b0 [dm_crypt]
[ 492.528828] process_one_work+0x1a7/0x3b0
[ 492.528831] worker_thread+0x30/0x390
[ 492.528833] ? create_worker+0x1a0/0x1a0
[ 492.528835] kthread+0x112/0x130
[ 492.528837] ? kthread_flush_work_fn+0x10/0x10
[ 492.528839] ret_from_fork+0x35/0x40
Запуск команды с использованием strace mkfs ...
всегда останавливается на одном и том же символе в выводе:
pwrite64(3, ”\3...”) = 4096
pwrite64(3, ”\3...”) = 4096
fsync(3
Я не знаю релевантности отсутствующей закрывающей круглой скобки в последней строке, но всегда останавливается именно на этом месте.
Как бы я мог идентифицировать больше что именно происходит и в чем может заключаться проблема?
Что решило это для меня, что ковыряться в сообщении об ошибке. Виновником оказался модуль intel_qat
с другим связанным модулем qat_c3xxx
. Так что, занеся модули в черный список, он перестал зависать.
blacklist intel_qat /bin/false
blacklist qat_c3xxx /bin/false
Чуть позже мне посоветовали проверить биос, а там глубоко есть настройка для QAT, и при ее отключении в биосе черный список уже не требуется.