Ubuntu

在現有驅動器上使用一個主分區創建加密分區,同時保留數據

  • January 9, 2017

fdisk -l:

Disk /dev/sda: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes`

分開-l:

Model: ATA WDC WD10EZEX-21W (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/4096B
Partition Table: loop
Disk Flags: 

Number  Start  End     Size    File system  Flags
1      0,00B  1000GB  1000GB  ext4

目標:該驅動器應該有 1 個加密分區,其中包含我的所有數據,但不是作業系統,以及(不一定)1 個未加密分區

該驅動器上有 200 GB 的數據。(只有數據,沒有系統文件 - 作業系統在 250 GB SSD 上)。我沒有任何其他儲存設備可以在使用該驅動器操作時儲存文件(我的 ssd 有大約 50 GB 的可用空間)。

我可以調整那個主分區的大小,但我不能在可用空間中創建新分區:gparted 說這個驅動器上只能存在 1 個主分區。幫助?

作業系統:Ubuntu 16.04

正如richard 所指出的,文件系統從磁碟的第一個扇區開始:您沒有分區。要創建加密分區,您需要先創建一個分區表。如果你想有一個加密分區,你確實需要有兩個分區,因為你需要一些非加密空間用於引導載入程序。

您可以創建分區表而不會失去數據。這是一項微妙的任務,因此請仔細檢查您的備份是否是最新的,但可以完成。

ext4 文件系統使前 512 字節未使用,並且 MBR 分區表適合磁碟的前 512 字節,因此您有空間用於 MBR 分區表。(請注意,它必須是 MBR,而不是 GPT。)

首先,啟動一些應急媒體。在掛載文件系統時不要嘗試執行任何此操作。SystemRescueCd對這類事情有好處。

如果超過一半的磁碟空間是空閒的,那麼您可以在磁碟的後半部分創建一個分區,如下所示:

  1. 確定磁碟設備的路徑。請注意,救援系統可能會以不同於您的正常系統的方式命名磁碟。這裡我假設路徑是/dev/sda.
  2. resize2fs /dev/sda盡可能地縮小文件系統。您可以看到有多少可用空間tune2fs -l /dev/sda
  3. 執行fdisk /dev/sda。Fdisk 會在記憶體中創建一個“dos disklabel”,即一個MBR 分區表。輸入並創建一個在文件系統結束後n開始的新主分區。Enter寫入新的分區表並退出 fdisk。w
  4. 將文件系統複製到新分區,head -c SIZE /dev/sda1其中*SIZE*文件系統收縮後的大小。
  5. 驗證數據新分區是否安全。
  6. 您現在可以創建分區以跨越磁碟的前半部分,即文件系統的舊副本所在的位置。

如果超過一半的磁碟在使用中,那麼你會很痛苦。我認為您可以通過首先將數據轉換為帶有blocks的 LVM 卷,然後縮小文件系統、邏輯捲和物理卷,並使用 gparted 移動物理卷的開頭來做到這一點。但我從來沒有做過這樣的事情,所以請仔細檢查你的備份。

如果您只能有一個分區,則表明您沒有分區表:您只是在使用原始磁碟。我查了一下Partition Table: loop,發現了很多東西,這似乎證實你正在使用原始設備。

應該可以移動文件系統,並插入一個指向它的分區表作為分區一。然後您可以繼續添加另一個分區等。

但是,我懷疑您不丟棄數據的可能性接近於零。如果您有另一個小型設備,您可以練習幾次,但如果事實證明與練習不同,您的數據可能會消失。

我這樣做過一次,在開始工作之前,它已經壞了好幾個小時,汗流浹背。還有一次我不小心寫了數據。

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