加密交換未在 Ubuntu 上啟動
如果我檢查我的作業系統(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
可能不起作用(正如斯蒂芬基特所建議的那樣)。適用於我的系統的解決方案如下:
- 執行
sudo fdisk -l
並找到作為交換分區的分區。在本例中,/dev/sda6
將使用。如果您找到另一個分區,請使用其名稱而不是sda6
所有步驟!- 將其名稱與安裝期間用作交換的分區(因此,在加密之前)進行比較,如
/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
文件的所有內容。