Swap не працює на чистому встановленні 14.04 за допомогою зашифрованого будинку


28

Оновлення 3:

Я вирішив перевстановити систему з нуля, щоб видалити будь-яку стару крихту, оскільки у мене виникли інші проблеми після оновлення. Однак, це питання зберігалося.

При чистому встановленні вибір установки за допомогою "зашифрованого дому" призводить до порушеної зашифрованої конфігурації swap.

Оновлення 2:

Я виправив наказ про розбиття, на який скаржився cfdisk, але він видається. Зараз swap увімкнено / 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 не може знайти його, що викликає збій. Але я не знаю, як це виправити ..

Оновлено запитання:

Подальше тестування показало, що я можу отримати своп і працювати, запускаючи $ mmwp / dev / sda5

а потім оновлення / etc / crypttab правильним UUID та виконуючи описані тут кроки: Як встановити зашифрований файл swap?

Однак проблема залишається, коли я перезавантажую комп'ютер, / 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) мій комп'ютер зазнав серйозних уповільнень, під час запуску вершини я помітив 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

І дивлячись на мій fstab

$ 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 щось не так, але я не знаю, як це виправити, оскільки він налаштований для шифрування. Буду вдячний за деяку допомогу, як діяти далі.


Я нічого не знаю про зашифровані розділи, але ця перша помилка говорить про те, що розділ swap не був змонтований. Також коментується лінія монтажу для нього в / etc / fstab. Я б спробував просто прокоментувати цей рядок і перезапустити, щоб перевірити, чи це виправлено
Anake

Я впевнений, що це слід коментувати, а лінія cryptswap1 несе відповідальність за встановлення непрямого використання інформації в / etc / crypttab. Ваша пропозиція напевно монтувала б це в незашифрованому вигляді?
айн

1
Чи буде це працювати? https://ubuntuforums.org/showthread.php?t=2224129 Я не впевнений у деяких командах і не хочу накручувати Ubuntu.

Це виглядає аналогічно тому, що я спробував, я б очікував, що він спрацює для однієї перезавантаження, а потім перестань працювати знову, коли ви вперше активували зашифрований своп.
айн

На даний момент я просто повернувся до використання звичайних свопів. Основний сценарій, проти якого я використовую шифрування, - це якщо хтось викрав мій ноутбук, а хтось із помірними навичками Linux вирішив зазирнути, щоб дізнатися, чи зможуть вони знайти щось цікаве, тобто, швидше за все, просто спробуйте завантажуватися за допомогою usb та змонтувати домашній розділ. У мене немає нічого, що я вважаю, що хтось знайде достатньо цінного, щоб спробувати почати відновлювати його фрагменти з заміни. Це дійсно має бути опцією встановлення для використання зашифрованого будинку + звичайний своп.
айн

Відповіді:


16

Відомий Буг

Існує помилка (див. Нижче), яка перезаписує UUIDрозділ, як тільки в нього записуються дані. Тому ви не можете скористатися UUIDпосиланням на розділ, який використовуватиме для зашифрованого свопу.

У наші дні простори для заміни майже не використовуються. На моїй машині своп використовується лише тоді, коли я відкриваю 40-ту вкладку. Коли у мене немає заміни, раптом мій комп'ютер починає відставати, і браузер закривається. Або у випадку Chromiumвеб-переглядача, багато вкладок раптом 'помре'.
З цієї причини посилання /dev/disk/by-uuid/в вашому /etc/crypttabможе здатися, що воно працює деякий час, але як тільки ваш обмінний простір буде фактично використаний, він буде перезаписаний, UUIDоскільки весь розділ використовується для зберігання зашифрованих даних.

Easy Fix

Просте виправлення полягає у посиланні на розділ swap за допомогою пристрою у вашому /etc/crypttab, наприклад:

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

Попередження: це, мабуть, безпечно для ноутбука (я використовую його так), але якщо ви перебуваєте на робочому столі з дисками, що змінюються, або у вас є інші причини зміни компонування диска / розділу, ви не хочете цього робити, як звичайний розділ пам’яті може раптом використовуватись для swap.

Примітка. Щоб зміни набули чинності, вам потрібно перезавантажитись, оскільки лише тоді, коли завантаження буде /dev/mapper/cryptswap1створено.

Правильне виправлення

Правильний спосіб виправити це - переконатися, що частина сировинного розділу, в якій зберігається UUID, не буде перезаписана зашифрованими даними swap, тому вона все ще буде там при перезавантаженні. Однак я не впевнений, де UUIDнаписано та скільки байтів він займає. Ви можете на свій страх і ризик перевірити це так:

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

Зверніть увагу на offset=36.

Будь ласка, якщо у вас є вхід до облікового запису Ubuntu One, перейдіть до помилки №1310058 на панелі запуску та виберіть (або натисніть тут): "Ця помилка впливає і на мене", тому помилка набуде "популярності" і більш схильна виправлятися.


Оновлення 2014-10-27

Я також натрапив на це. Не підтверджено мною. Це виглядає як offsetтрюк з більшою багатослівністю та коментарями щодо відновлення зламаного свопу.

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


5
Я просто хочу зазначити, що помилка відстежується на bugs.launchpad.net/ubuntu/+source/ecryptfs-utils/+bug/953875 станом на кілька днів тому (середина березня 2015 року) статус "виправлено звільнено", хоча це виправлення застосовується лише явно до 15.04. Я дивлюсь, чи підтримується він до 14.04 LTS ... і якою може бути "офіційна" процедура оновлення
Tommy Trussell

1
@TommyTrussell: Не підтримувати репортаж було б божевільним для LTS. Помилки для таких важливих речей все ще відкриваються майже рік після випуску, тому навіть великі Linux дистрибутиви ніколи не будуть нарівні з OSX та Windows. На жаль,
Редсандро

Мені не відомо про публічне обговорення помилок, оскільки вони виправляються в OSX та Windows, тож як вони можуть бути «нарівні»? З мого досвіду роботи з OSX, помилки виправляються чи ні; публічного обговорення немає, тому вони "непрозорі". Я просто згадав про новий номер помилки (оскільки той, кого ви пов’язали, був позначений як дублікат), щоб ви могли оновити свою посилання. Як видно з обговорення на форумі, розміщеному в програмі Bug 953875, найбільш стабільне виправлення може відрізнятися залежно від системи init, яка змінюється 15.04. Таким чином, виправлення 14.04 може мати технічні проблеми для сумісності вперед.
Tommy Trussell

Я просто кажу, що ви ніколи не побачите щось подібне "О, до речі, SWAP зламаний" у такій системі, як Windows або OSX. Це така основна функціональність, яка ніколи не отримає RTM, перш ніж тестуватися та виправлятися. Це все. Що стосується безпеки, немає публічних дискусій, але все ж є статистика .
Редсандро

@Redsandro Ну, це безкоштовна операційна система, і такі речі будуть виправлені до випуску, лише якщо люди виявлять помилку під час тестування випуску. Після випуску просто надто ризиковано, що виправлення помилки порушить щось інше в чиїйсь конфігурації. Однак це може бути зафіксовано в більш новій версії - тому, можливо, варто використати це - але тимчасові випуски, як правило, більш нестабільні, ніж випуски LTS, так чи інакше, оскільки акцент більше приділяється загальним оновленням. Але ви визначили, чому тестування / виправлення помилок / забезпечення якості (QA) є таким важливим, і Ubuntu стає в цьому кращим.
Реклама20000

9

У мене була така ж точна проблема в 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

3
Це правильне та просте виправлення!
Серж Стротобандт

7

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

... і зберігати / додому зашифровано

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

Це говорить нам, що ми маємо справу з подвійною помилкою:

  1. UUID приводу swap перекривається системою шифрування, і
  2. Під час завантаження виникає проблема очікування.

Ці думки відображені також у коментарях до відповідного помилки, поданого на Launchpad . Однак з очікуванням переходу від Upstart до systemd мало що робиться для усунення помилок у поточних системах LTS.

У цей момент мені спадали на думку наступні думки:

  1. Під час встановлення системи я попросив зашифрувати лише свій \homeрозділ, нічого іншого.
  2. Ризики, пов'язані з відсутністю зашифрованого розділу swap, досить обмежені.
  3. До Canonical слід прибирати їх вчинок. Я не витрачу більше часу на це.

Отже, ось моє рішення відновити своп як звичайний, незашифрований своп без необхідності перевстановлення всієї операційної системи.

  1. Якщо ви цього ще не зробили, встановіть blkid:$ sudo apt-get install blkid
  2. Відредагуйте /etc/crypttabта видаліть увесь cryptswap1рядок:$ sudo nano /etc/crypttab
  3. Запустіть GParted з меню налаштувань системи.
  4. Ви побачите розділ зі знаком оклику. Це має бути несправний розділ swap. Уважно виберіть його та переформатуйте до linux-swapрозділу. Після застосування цієї операції вам повідомляється про новий UUID відновленого нормального розділу swap. Вам пропонується можливість зберегти цю інформацію. Якщо цього немає, знайте, що новий 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. Це рішення переживає як гарячі перезавантаження, так і вимкнення при холодному перезапуску.

1
Це єдина відповідь, яка працювала на мене, хоча я спробував усе інше.
п'ятниця

У розділеному розділі мій своп розділ містить завантажувальний прапор. Чи це все ще спрацює, або я не зможу завантажуватися?
Крістіан Шкіддт

@ ChristianSkjødt У вашому розділі swap не повинен бути встановлений прапор завантаження. Як би там не було, вищезазначена процедура не вплине ні на що.
Серж Стротобандт

2

Погляньте на це . Я вирішив цю проблему, просто замінивши UUID = ... на / dev / sda3 в / etc / crypttab.


1
спочатку запустіть "sudo fdisk -l", щоб перевірити, як називається ваш swap-розділ, це може бути "/ etc / sda5" або інше, а потім відредагуйте криптаб, як описано мутантами. Це працювало для мене і переживає перезавантаження. Це, безумовно, помилка, оскільки я отримав цю проблему із новою установкою на новий SSD. Я дійсно пішов на опцію "шифрувати домашній каталог" при установці, набагато краще шифрувати / home після встановлення, особливо якщо ви копіюєте файли зі старого / домашнього з попереднього встановлення.
Пол Вільямс

sudo fdisk -lБуло що - то ніхто не говорив. Дякую за це! :)
Аман Алам

Ви повинні принаймні попередити людей про те, що /dev/sd*шляхи можуть змінюватися на примху і призводити до того, що неправильний розділ знищиться за допомогою даних своп. /dev/disk/by-idє вищим.
підкреслюй_

0

Я маю цю проблему, як і люди, про які йдеться у запитанні 332625 . Деяка комбінація призупинення та перезавантаження втрачає UUID вашого розділу swap (як говорить коментар у вашому / etc / fstab , підтвердьте це sudo blkd), тому рядок у вашому / etc / crypttab використовувати цей UUID як зашифрований своп не вдається.

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

На жаль, відмова від зашифрованого свопу - це найпростіше і поки що найкраще рішення.


ця проблема дуже стара, мені цікаво, чому вони її вже не виправили, тепер я зіткнувся з тією ж проблемою, що і з моїм робочим столом, і не можу її запустити, виправив її на своєму ноутбуку в минулому, але не можу пригадати, як :(
tomasb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.