Ubuntu

加密交換未在 Ubuntu 上啟動

  • September 12, 2019

如果我檢查我的作業系統(Ubuntu 14.04)中交換分區的使用情況

$ cat /proc/swaps 
Filename                Type        Size    Used    Priority
$

我得到一個空的結果。但是這個分區實際上應該存在,命名/dev/sda6為 8 GB。

$ sudo parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print free
Model: ATA Hitachi HTS54323 (scsi)
Disk /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size        Type      File system    Flags
       32,3kB  1049kB  1016kB                Free Space
1      1049kB  160GB   160GB       primary   ext4           boot
       160GB   160GB   1048kB                Free Space
2      160GB   320GB   160GB       extended
5      160GB   312GB   152GB       logical   ext4
6      312GB   320GB   7997MB      logical
       320GB   320GB   352kB                 Free Space

在分區號 6 中File system,它是空的,應該是linux-swap. 這些分區是使用 Ubuntu 安裝嚮導創建的。有什麼不對?以及如何將 8 GB 空間用作交換分區?


根據評論中的要求,這是/etc/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/sda1 during installation
UUID=bd20abfc-6ff1-4c3c-a77d-0e85f5c19af9 /               ext4    errors=remount-ro 0       1
# /home was on /dev/sda5 during installation
UUID=29599282-3815-4aa7-80ba-9058898e7a73 /home           ext4    defaults        0       2
# swap was on /dev/sda6 during installation
#UUID=c34d62e9-68e8-495a-869b-b107b5741c7e none            swap    sw              0       0
/dev/mapper/cryptswap1 none swap sw 0 0

在安裝過程中,我選擇加密我的主目錄(然後我選擇稍後再做,但我從未這樣做過)。我也不記得交換的加密!我不需要加密交換分區。

而且:

$ cat /etc/crypttab 
cryptswap1 UUID=c34d62e9-68e8-495a-869b-b107b5741c7e /dev/urandom swap,cipher=aes-cbc-essiv:sha256
$ free -m
            total       used       free     shared    buffers     cached
Mem:          3005       2082        922         42         46        534
-/+ buffers/cache:       1500       1504
Swap:            0          0          0

正如 Jan Henke 所提到的,這是 Ubuntu 14.04(和 12.04)的一個已知錯誤。如果在安裝過程中使用者選擇加密他的主分區,交換分區也將被加密,但它對作業系統不可用。

由於感興趣分區的加密,直接mkswap可能不起作用(正如斯蒂芬基特所建議的那樣)。

適用於我的系統的解決方案如下:

  1. 執行sudo fdisk -l並找到作為交換分區的分區。在本例中,/dev/sda6將使用。如果您找到另一個分區,請使用其名稱而不是sda6所有步驟
  2. 將其名稱與安裝期間用作交換的分區(因此,在加密之前)進行比較,如/etc/fstab第 (1) 行所示

# swap was on /dev/sda6 during installation

並確保它們相同。 3. 執行sudo -s,然後umount /dev/sda6。 4. 執行mkswap /dev/sda6。在輸出中,應該生成一個 UUID。 5. 使用UUID 執行

echo "RESUME=UUID=143c43d8-0a77-4d62-a7ae-f53a8e0229a9" > /etc/initramfs-tools/conf.d/resume

(此處使用的 UUID 只是一個範例)。 6. 跑

echo "cryptswap1 /dev/sda6 /dev/urandom swap,cipher=aes-cbc-essiv:sha256" > /etc/crypttab 7. 跑

update-initramfs -u exit 8. 重啟。

重新啟動後,確認您的系統實際上正在使用交換分區。用cat /proc/swaps或檢查swapon -s。後一個命令的輸出應如下所示:

Filename                                Type            Size    Used    Priority
/dev/mapper/cryptswap1                  partition       8787964 0       -1

此解決方案來自此連結。我根據 Stackexchange 指南在這裡完全重寫了它。


(1) 在我的問題中,我發布了/etc/fstab文件的所有內容。

引用自:https://unix.stackexchange.com/questions/308153