建立步驟:
- dd if=/dev/zero of=TARGET bs=1G count=40
- sudo mkfs.ext3 TARGET
使用步驟:
- sudo mkdir /media/DISKNAME
- sudo mount TARGET /media/DISKNAME -o loop
- ... (做你想做得事)
- sudo umount /media/DISKNAME
- sudo rmdir /media/DISKNAME
不過我後來又想到我想要把資料加密,因為我不想要我的資料被偷看。印象中有一個叫 dm-crypt 的 Linux 2.6 的模組可以把一個普通檔案映射成一個加密硬碟,只要 umount 之後,沒有你的密碼,誰也不能讀取。
事前準備:
- sudo aptitude install dmsetup cryptsetup
掛載系統模組:
- sudo modprobe aes
- sudo modprobe dm_crypt
建立步驟:
- sudo dd if=/dev/zero of=TARGET bs=1G count=40
- sudo losetup /dev/loop0 TARGET
備註: 這個步驟的 /dev/loop0 可以用任何一個 LOOP device 取代。 - sudo cryptsetup -y create CRYPTDEVNAME /dev/loop0 -c aes
備註: 你必須要輸入密碼二次。 - sudo mkfs.ext3 /dev/mapper/CRYPTDEVNAME
- sudo cryptsetup remove CRYPTDEVNAME
- sudo losetup -d /dev/loop0
使用步驟:
- sudo losetup /dev/loop0 TARGET
- sudo cryptsetup create CRYPTDEVNAME /dev/loop0 -c aes
備註: 即使你輸入的密碼是錯誤的也不會有任何提示。 - sudo mkdir /media/MNTNAME
- sudo mount /dev/mapper/CRYPTDEVNAME /media/MNTNAME
備註: 如果這時有錯誤,不要急著修復檔案系統,如果亂動,資料就一去不復返了。這一個錯誤有可能是因為之前在 cryptsetup 的時候,你輸入的密碼是錯誤的,使用 cryptsetup remove,然後回到 2 重新輸入一次你的密碼。 - ... (做你想做得事)
- sudo umount /media/MNTNAME
- sudo rmdir /media/MNTNAME
- sudo cryptsetup remove CRYPTDEVNAME
- sudo losetup -d /dev/loop0
另外,第 8, 9 二步是不能少的,不然有 root 權限的有心人士不用輸入密碼也可以 mount 你的資料。
備註: 用 losetup mount 起來的 device,其根目錄是只有 root 才有寫入權限的,解決方法是在根目錄用 sudo mkdir 建立一個子目錄,然後用 sudo chown 把使用權轉移給其他使用者。
後讀工作(可選):
- sudo modprobe -r dm_crypt
- sudo modprobe -r aes