構造固定大小的文件並進行格式化的方法

背景

這兩天工作中需要使用大文件驗證文件加解密模塊的效果,一般來說,無論是大文件還是小文件,要驗證解密後的結果是否和明文一致,都是用md5sum、shasum等計算摘要的方式,比較解密後的結果的摘要和明文的摘要,如果摘要一致,則說明加解密功能是正常的。

也可以通過直接查看明文文件和解密文件,進行對比,檢查加解密效果,但是由於文件比較大,加載時間比較長,對內存的消耗也很大,操作起來很不方便。
於是想到可以使用dd命令,構造指定大小的文件,再對文件進行格式化,生成文件系統,使用文件系統進行加解密,再分別掛載明文文件系統和解密後的文件系統,掛載後查看文件系統下的文件,以及文件內容是否一致,以此確定加解密功能是否正常。

操作方法

構建指定大小的文件

dd工具可以用指定大小的塊拷貝一個文件,並在拷貝的同時進行指定的轉換。通常用於文件的備份,如:

將本地的/dev/hdb整盤備份到/dev/hdd
dd if=/dev/hdb of=/dev/hdd
將/dev/hdb全盤數據備份到指定路徑的image文件
dd if=/dev/hdb of=/root/image
將備份文件恢復到指定盤
dd if=/root/image of=/dev/hdb
備份磁盤開始的512個字節大小的數據到指定文件,count=1指僅拷貝一個塊;bs=512表示同時設置讀入/輸出的塊大小爲512個字節:
dd if=/dev/hda of=/root/image count=1 bs=512
備份磁盤開始的512M大小的數據到指定文件,count=512指拷貝512個塊;bs=1024KiB表示同時設置讀入/輸出的塊大小爲1MByte:
dd if=/dev/hda of=/root/image count=512 bs=1024KiB

注意,在使用dd命令中的bs/ibs/obs選項時,如果想指定1KByte或者1MBytes(即1024個Byte或者10241024個Byte),需要寫成1KiB或者1MiB;如果寫成1KB或者1MB,則會被識別成1000Byte或者10001000Byte在這裏插入圖片描述

可以看到,因爲有了bs和count兩個選項,所以我們可以用dd命令構建任意大小的文件,在構建文件時可以使用/dev/zero作爲輸入,這個設備節點可以向我們構建的文件寫入0

dd if=/dev/zero of=bs_is_KiB count=512 bs=1KiB

對文件進行格式化

根據需要使用哪種文件系統,選擇對應的格式化工具,如想要將上面構建的文件格式化成ext4的文件系統,則應該使用mkfs.ext4,用法很簡單,直接在後面加上文件名即可

mkfs.ext4 bs_is_KiB

在這裏插入圖片描述

掛載格式化後的文件系統,掛載後查看掛載目錄,看到lost+found目錄,說明掛載成功

sudo mount bs_is_KiB test/

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章