在現有驅動器上使用一個主分區創建加密分區,同時保留數據
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對這類事情有好處。
如果超過一半的磁碟空間是空閒的,那麼您可以在磁碟的後半部分創建一個分區,如下所示:
- 確定磁碟設備的路徑。請注意,救援系統可能會以不同於您的正常系統的方式命名磁碟。這裡我假設路徑是
/dev/sda
.resize2fs /dev/sda
盡可能地縮小文件系統。您可以看到有多少可用空間tune2fs -l /dev/sda
。- 執行
fdisk /dev/sda
。Fdisk 會在記憶體中創建一個“dos disklabel”,即一個MBR 分區表。輸入並創建一個在文件系統結束後n
開始的新主分區。Enter寫入新的分區表並退出 fdisk。w
- 將文件系統複製到新分區,
head -c SIZE /dev/sda1
其中*SIZE*
文件系統收縮後的大小。- 驗證數據新分區是否安全。
- 您現在可以創建分區以跨越磁碟的前半部分,即文件系統的舊副本所在的位置。
如果超過一半的磁碟在使用中,那麼你會很痛苦。我認為您可以通過首先將數據轉換為帶有blocks的 LVM 卷,然後縮小文件系統、邏輯捲和物理卷,並使用 gparted 移動物理卷的開頭來做到這一點。但我從來沒有做過這樣的事情,所以請仔細檢查你的備份。
如果您只能有一個分區,則表明您沒有分區表:您只是在使用原始磁碟。我查了一下
Partition Table: loop
,發現了很多東西,這似乎證實你正在使用原始設備。應該可以移動文件系統,並插入一個指向它的分區表作為分區一。然後您可以繼續添加另一個分區等。
但是,我懷疑您不丟棄數據的可能性接近於零。如果您有另一個小型設備,您可以練習幾次,但如果事實證明與練習不同,您的數據可能會消失。
我這樣做過一次,在開始工作之前,它已經壞了好幾個小時,汗流浹背。還有一次我不小心寫了數據。