Swap не работает при чистой установке 14.04 с использованием зашифрованного дома

Обновление 3:

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

При чистой установке выбор установки с использованием "Зашифрованного дома" приводит к неправильной конфигурации зашифрованного свопинга.

Обновление 2:

Я исправил порядок разбиения, на который жаловался cfdisk, но проблема сохраняется. Теперь своп находится в /dev/sda6, и я могу запустить его следующим образом:

~$ sudo mkswap /dev/sda6
Setting up swapspace version 1, size = 7998460 KiB
no label, UUID=18881d0f-d9ec-43be-a23f-0cbd78ea6d22

$sudo nano /etc/crypttab # Update crypttad with new UUID

$ sudo /etc/init.d/cryptdisks reload
 * Stopping remaining crypto disks...
 * cryptswap1 (stopped)...                                               [ OK ] 
 * Starting remaining crypto disks...                                        
 * cryptswap1 (starting)..
 * cryptswap1 (started)...                                               [ OK ] 
$ sudo swapon -a

$ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 11 09:04 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 11 09:08 18881d0f-d9ec-43be-a23f-0cbd78ea6d22 -> ../../sda6
lrwxrwxrwx 1 root root 10 May 11 09:04 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 11 09:04 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 11 09:04 D28230E68230D129 -> ../../sda2
lrwxrwxrwx 1 root root 10 May 11 09:08 fcc8c419-8fec-4d4d-b55e-9e4c3b04d21d -> ../../dm-0

Но после перезагрузки своп не активируется, и он снова выглядит так:

$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May 11 09:12 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May 11 09:12 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda5
lrwxrwxrwx 1 root root 10 May 11 09:12 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May 11 09:12 D28230E68230D129 -> ../../sda2

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

Обновленный вопрос:

Дальнейшее тестирование показало, что я могу запустить и запустить обмен, запустив $ mkswap /dev/sda5

а затем обновите /etc/crypttab, указав правильный UUID и выполнив действия, описанные здесь: Как настроить зашифрованный файл подкачки?

Однако проблема остается, когда я перезагружаю компьютер, / dev / sda5 не появляется при запуске

$ ls -l /dev/disk/by-uuid/

Если я сделаю:

$ cfdisk /dev/sda 

Я получаю следующую ошибку:

FATAL ERROR: Bad logical partition 6: enlarged logical partitions overlap
                      Press any key to exit cfdisk

Графическая утилита "Диски" не выдает никаких ошибок при открытии диска с ее помощью.

$ sudo fdisk -l

Disk /dev/sda: 256.1 GB, 256060514304 bytes
255 heads, 63 sectors/track, 31130 cylinders, total 500118192 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x619aebf1

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   100870143    50331648    7  HPFS/NTFS/exFAT
/dev/sda3       191397888   192397311      499712   83  Linux
/dev/sda4       192399358   500117503   153859073    5  Extended
/dev/sda5       484118528   500117503     7999488   82  Linux swap / Solaris
/dev/sda6       192399360   484118527   145859584   83  Linux

Partition table entries are not in disk order

Оригинальный вопрос:

После обновления до 14.04 (с 13.04) мой компьютер испытывал серьезные замедления, при запуске top я заметил, что kswap0 занимает много процессорного времени. Я также заметил, что у меня не было места подкачки!

$ sudo swapon -a
swapon: /dev/mapper/cryptswap1: stat failed: No such file or directory

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

$ cat /etc/crypttab 
cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,cipher=aes-cbc-essiv:sha256

$ ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root 10 May  6 11:00 08b07f88-6da5-4b40-b062-42b3bb1c5f00 -> ../../sda3
lrwxrwxrwx 1 root root 10 May  6 11:00 19aa372c-05c8-4226-8f09-c54e5566e816 -> ../../sda6
lrwxrwxrwx 1 root root 10 May  6 11:00 A800B16E00B143DA -> ../../sda1
lrwxrwxrwx 1 root root 10 May  6 11:00 D28230E68230D129 -> ../../sda2

И глядя на мой фстаб

$ 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/sda6 during installation
UUID=19aa372c-05c8-4226-8f09-c54e5566e816 /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda3 during installation
UUID=08b07f88-6da5-4b40-b062-42b3bb1c5f00 /boot           ext2    defaults        0       2
# swap was on /dev/sda5 during installation
#UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

Я предполагаю, что в настройке sda5 что-то не так, но я не знаю, как это исправить, поскольку он настроен на шифрование. Был бы признателен за помощь, как, как действовать.

5 ответов

Решение

Известная ошибка

Существует ошибка (см. Ниже), которая перезаписывает UUID для раздела, как только данные будут записаны в него. Поэтому вы не можете использовать UUID для ссылки на раздел, который будет использоваться для зашифрованного обмена.

В наши дни пространство подкачки практически не используется. На моей машине своп используется только тогда, когда я открываю свою 40-ую вкладку. Когда у меня нет свопа, внезапно мой компьютер начинает зависать, и браузер закрывается. Или в случае Chromium браузер, многие вкладки внезапно "умрут".
По этой причине ссылки /dev/disk/by-uuid/ в вашем /etc/crypttab может показаться, что работает некоторое время, но как только ваше пространство подкачки будет фактически использовано, оно перезапишет UUID потому что весь раздел используется для хранения зашифрованных данных.

Easy Fix

Простое решение заключается в том, чтобы ссылаться на раздел подкачки по устройству в вашем /etc/crypttabНапример:

cryptswap1 /dev/sda5 /dev/urandom swap,cipher=aes-cbc-essiv:sha256

Предупреждение: это, вероятно, безопасно на ноутбуке (я использую его таким образом), но если вы находитесь на рабочем столе с заменяемыми дисками или у вас есть другие причины для изменения структуры диска / раздела, вы не хотите делать это, как нормальный раздел памяти может внезапно использоваться для подкачки.

Примечание. Чтобы изменения вступили в силу, необходимо перезагрузиться, поскольку только при загрузке /dev/mapper/cryptswap1 быть создан.

Правильное исправление

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

cryptswap1 UUID=abe3c568-c8fd-4dfb-b8e9-0520d442dd61 /dev/urandom swap,offset=36,cipher=aes-cbc-essiv:sha256

Обратите внимание offset=36,

Пожалуйста, если у вас есть учетная запись Ubuntu One, войдите в систему и перейдите к ошибке #1310058 на Launchpad и выберите (или нажмите здесь): "Эта ошибка также влияет на меня", чтобы ошибка приобрела "популярность" и стала более подверженной исправлению.


Обновление 2014-10-27

Я тоже наткнулся на это. Не проверено мной. Это выглядит как offset уловка с большим количеством многословия и комментариями о восстановлении сломанного обмена.

https://bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/1310058/comments/22

У меня была точно такая же проблема в Ubuntu 14.04, и я наткнулся на эту тему; эта ссылка, предоставленная мутантом, сработала для меня. Я использовал /dev/disk/by-id ссылка, а не /dev/sdXY, так как эта ссылка не всегда указывает на один и тот же физический раздел. мой /etc/crypttab в конечном итоге, как:

cryptswap1 /dev/disk/by-id/wwn-0x500...-part6 /dev/urandom swap, cipher=aes-cbc-essiv:sha256

Просто используйте незашифрованный своп

... и держать / дома в зашифрованном виде

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

Это говорит нам о том, что мы имеем дело с двойной ошибкой:

  1. UUID диска подкачки переопределяется системой шифрования, и
  2. Во время загрузки возникает проблема тайм-аута.

Эти мысли также отражены в комментариях к соответствующей ошибке, поданной на Launchpad. Однако с ожидаемым переходом от Upstart к systemd мало что сделано для устранения ошибки в современных системах LTS.

В этот момент мне в голову пришли следующие мысли:

  1. Во время установки системы я попросил только зашифровать \home раздел, больше ничего.
  2. Риски, связанные с отсутствием зашифрованного раздела подкачки, довольно ограничены.
  3. Это до Canonical, чтобы навести порядок. Я не буду тратить больше времени на это.

Итак, вот мое решение восстановить подкачку как обычный незашифрованный подкачку без переустановки всей операционной системы.

  1. Если вы еще этого не сделали, установите blkid: $ sudo apt-get install blkid
  2. редактировать /etc/crypttab и удалить весь cryptswap1 линия: $ sudo nano /etc/crypttab
  3. Запустите GParted из меню системных настроек.
  4. Вы увидите раздел с восклицательным знаком. Это должен быть неисправный раздел подкачки. Тщательно выберите его и переформатируйте в linux-swap раздел. После применения этой операции вам сообщают о новом UUID восстановленного нормального раздела подкачки. Вам предлагается возможность сохранить эту информацию. Если вы этого не сделаете, знайте, что вы всегда можете получить новый UUID из командной строки с помощью blkid: $ sudo blkid
  5. Теперь пришло время восстановить /etc/fstab к его былой славе: $ sudo nano /etc/fstab

    • Удалить всю строку, содержащую ссылку на /dev/mapper/cryptswap1,
    • Раскомментируйте старый swap строка, удалив хеш # перед UUID=...,
    • Теперь замените старый UUID на новый, полученный ранее.
    • Запишите файл, нажав Ctrl+O и выйдите nano с помощью Ctrl+X.
  6. Сделав все это, вы уже можете начать использовать новый незашифрованный своп с: $ sudo swapon -a
  7. Это решение выдерживает как горячие перезагрузки, так и выключение при холодном перезапуске.

Посмотрите на это. Я исправил эту проблему, просто заменив UUID=... на /dev/sda3 в /etc/crypttab.

У меня есть эта проблема, как и люди в вопросе 332625. Некоторая комбинация приостановки и перезагрузки теряет UUID вашего раздела подкачки (как говорится в комментарии в вашем / etc / fstab, подтвердите это с помощью sudo blkd), поэтому строка в вашем / etc / crypttab использовать этот UUID в качестве зашифрованного свопа не удалась.

Мне не повезло переключить / etc / crypttab для использования раздела /dev имя (/ dev / sda6 в вашем случае) или dev/disk/by-id/ имя вместо исчезающего UUID.

К сожалению, отмена зашифрованного свопа - самое простое и пока лучшее решение.

Другие вопросы по тегам