swapon: статистика /dev/mapper/cryptswap1 завершилась неудачно: нет такого файла или каталога
У меня проблема с созданием зашифрованного свопа.
Я следую за этими шагами
sudo swapoff -a
- Прокомментируйте существующую конфигурацию свопинга в
/etc/crypttab
- Прокомментируйте существующую конфигурацию свопинга в
/etc/fstab
- Переформатируйте раздел подкачки с помощью gparted как linux-swap
sudo mkswap /dev/sda5
- Обновить
/etc/initramfs-tools/conf.d/resume
с новым UUID sudo update-initramfs -u
sudo swapon /dev/sda5
sudo ecryptfs-setup-swap
И в этот момент я сталкиваюсь с этой проблемой
root@username-UX430UN:/home/username# ecryptfs-setup-swap
WARNING:
An encrypted swap is required to help ensure that encrypted files are not leaked to disk in an unencrypted format.
HOWEVER, THE SWAP ENCRYPTION CONFIGURATION PRODUCED BY THIS PROGRAM WILL BREAK HIBERNATE/RESUME ON THIS SYSTEM!
NOTE: Your suspend/resume capabilities will not be affected.
Do you want to proceed with encrypting your swap? [y/N]: y
INFO: Setting up swap: [/dev/sda5]
marking GPT swap partition /dev/sda5 as no-auto...
swapon: stat of /dev/mapper/cryptswap1 failed: No such file or directory
2 ответа
У меня возникла та же проблема, когда я пытался настроить зашифрованное пространство подкачки и думаю, что нашел решение. Для начала вот пара ссылок, которые я использовал в своем исследовании:
- Простой How-To шифрует пространство подкачки с помощью ecryptfs (когда все работает правильно)
- Отладка сообщения в блоге, в котором подробно отлаживается очень похожая проблема. Я получил много своих идей отсюда, поэтому я бы рекомендовал прочитать его.
Настройка проблемы
Когда я побежал ecryptfs-setup-swap
в первый раз (обратите внимание, что я уже установил пространство подкачки при установке, поэтому мне не нужно было делать mkswap
Я получил сообщение об ошибке, в котором говорится, что пространство подкачки не может быть правильно смонтировано.
$ sudo ecryptfs-setup-swap
[sudo] password for isaac:
WARNING:
An encrypted swap is required to help ensure that encrypted files are not leaked to disk in an unencrypted format.
HOWEVER, THE SWAP ENCRYPTION CONFIGURATION PRODUCED BY THIS PROGRAM WILL BREAK HIBERNATE/RESUME ON THIS SYSTEM!
NOTE: Your suspend/resume capabilities will not be affected.
Do you want to proceed with encrypting your swap? [y/N]: y
INFO: Setting up swap: [/dev/nvme0n1p5]
WARNING: Commented out your unencrypted swap from /etc/fstab
marking GPT swap partition /dev/nvme0n1p5 as no-auto...
swapon: stat of /dev/mapper/cryptswap1 failed: No such file or directory
Я попытался снова запустить команду и получил сообщение о том, что у меня больше нет места подкачки.
$ sudo ecryptfs-setup-swap
INFO: You do not currently have any swap space defined.
You can create a swap file by doing:
$ sudo dd if=/dev/zero of=/swapfile count=130667600
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
And then re-run /usr/bin/ecryptfs-setup-swap
Двойная проверка сообщения об ошибке при первом запуске команды ecrypt, похоже, что /dev/mapper/cryptswap1
не существует.
$ ls /dev/mapper/
control
Исследование соответствующих системных файлов
Основываясь на ранее упомянутом сообщении в блоге, я решил начать поискать в своих системных файлах доказательства того, почему не было идентифицировано пространство подкачки. В блоге упоминается, что измененные схемы именования разделов жесткого диска вызывают проблемы для ecryptfs и что переключение на использование идентификатора на основе UUID является более последовательным.
$ blkid
/dev/nvme0n1p5: UUID="aea96d7f-e091-460b-95fd-a34ab884d440" TYPE="swap" PARTUUID="0a7db4e0-17bf-40e3-8675-afec7891afc5"
/dev/nvme0n1p1: LABEL="ESP" UUID="C291-E533" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="63fc7fb9-2ca5-422b-90c7-0db698acdb3c"
/dev/nvme0n1p3: UUID="16F4C1EEF4C1D063" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c04d0838-5570-4bfc-a961-4b9224b8cc0c"
/dev/nvme0n1p4: UUID="0EEE7736EE7714E5" TYPE="ntfs" PARTUUID="4dc6595f-cc9c-4d80-99ab-ffd9cbe3c1d7"
/dev/nvme0n1p6: UUID="8b2f5c94-db79-4c8d-b5c6-403d912bc0dd" TYPE="ext4" PARTUUID="e373c83f-f992-4e62-a235-1fdd01ac7cf0"
Обратите внимание, что мое пространство подкачки /dev/nvme0n1p5
и имеет UUID aea96d7f...
, Сейчас посмотрю /etc/fstab
а также /etc/crypttab
чтобы увидеть, как выглядит конфигурация подкачки.
$ cat /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/nvme0n1p6 during installation
UUID=8b2f5c94-db79-4c8d-b5c6-403d912bc0dd / ext4 errors=remount-ro 0 1
# /boot/efi was on /dev/nvme0n1p1 during installation
UUID=C291-E533 /boot/efi vfat umask=0077 0 1
# swap was on /dev/nvme0n1p5 during installation
#UUID=aea96d7f-e091-460b-95fd-a34ab884d440 none swap sw 0 0
/dev/mapper/cryptswap1 none swap sw 0 0
$ cat /etc/crypttab
# <target name> <source device> <key file> <options>
cryptswap1 UUID=aea96d7f-e091-460b-95fd-a34ab884d440 /dev/urandom swap,offset=1024,cipher=aes-xts-plain64
Здесь есть пара моментов, которые стоит отметить, поэтому я расскажу о них по одному.
- ecryptfs, кажется, правильно изменил мой
fstab
отключить мое старое пространство подкачки (закомментированная строка с UUID подкачки) и включить зашифрованное. - Crypttab настроен с соответствующим UUID для сопоставления с моим пространством подкачки. Это большая проблема, если ваша crypttab настроена на что-то кроме UUID (скажем, имя диска в /dev), возможно, что ядро может переименовать диск и вызвать проблемы (снова, смотрите блог для подробностей).). В моем случае ecryptfs, кажется, правильно настроил запись, используя UUID (я предполагаю, что она исправлена 16.04, поскольку блог упоминает о проблеме 14.04).
- Crypttab указывает смещение для диска. Опять же, это тонкая "ошибка", упомянутая в блоге, но если смещение отсутствует, это может привести к потере UUID накопителя, поскольку он будет зашифрован.
Наконец я проверил swapon
чтобы увидеть, находит ли он какое-либо пространство подкачки.
$ swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 31248892 0 -1
Похоже, он указывает на пространство подкачки (правильного размера), но это пространство подкачки не настроено должным образом в /dev/mapper
(на что ссылается fstab).
Решение
Следуя предложениям в блоге, я решил посмотреть, просто ли перезапустить cryptdisks
сервис решит проблему.
$ swapoff -a
$ /etc/init.d/cryptdisks start
$ swapon -a
$ swapon -s
Filename Type Size Used Priority
/dev/dm-0 partition 31248892 0 -1
$ ls -l /dev/mapper/
total 0
crw------- 1 root root 10, 236 Jan 9 11:30 control
lrwxrwxrwx 1 root root 7 Jan 9 12:28 cryptswap1 -> ../dm-0
На данный момент кажется, что мое пространство подкачки настроено правильно. Бег htop
показывает соответствующий объем пространства подкачки и диагностические команды, которые я использовал выше, все получаются положительными, особенно blkid
сейчас показывает /dev/mapper/cryptswap1
,
$ sudo blkid
/dev/nvme0n1p1: LABEL="ESP" UUID="C291-E533" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="63fc7fb9-2ca5-422b-90c7-0db698acdb3c"
/dev/nvme0n1p3: UUID="16F4C1EEF4C1D063" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="c04d0838-5570-4bfc-a961-4b9224b8cc0c"
/dev/nvme0n1p4: UUID="0EEE7736EE7714E5" TYPE="ntfs" PARTUUID="4dc6595f-cc9c-4d80-99ab-ffd9cbe3c1d7"
/dev/nvme0n1p5: UUID="aea96d7f-e091-460b-95fd-a34ab884d440" TYPE="swap" PARTUUID="0a7db4e0-17bf-40e3-8675-afec7891afc5"
/dev/nvme0n1p6: UUID="8b2f5c94-db79-4c8d-b5c6-403d912bc0dd" TYPE="ext4" PARTUUID="e373c83f-f992-4e62-a235-1fdd01ac7cf0"
/dev/mapper/cryptswap1: UUID="113abaa7-c122-4d47-a826-181ee6a29627" TYPE="swap"
Настройки сохранились после перезагрузки, и все, кажется, работает нормально, так что, насколько я могу судить, это сработало. Надеюсь, это поможет.
Потенциальное альтернативное решение
Чтобы убедиться, что мой ответ работает правильно, я попытался воспроизвести проблему на экземпляре EC2. У меня было такое же поведение, когда бег sudo ecryptfs-setup-swap
где это будет ошибка при попытке запустить swappon
, Однако по какой-то причине сопоставление устройства /dev/dm-0
похоже, не настроен должным образом. /etc
файлы вроде бы были в порядке, поэтому я попытался просто перезагрузить экземпляр. Это, казалось, работало просто отлично; однако, я бы рекомендовал по крайней мере проверить соответствующие параметры конфигурации перед перезагрузкой, чтобы убедиться, что они установлены правильно, чтобы ядро могло смонтировать своп при перезагрузке.