Linux下構造分區滿的兩種方式

咱們都知道Linux提供了特殊設備/dev/full來供測試磁盤滿的狀況,然而它只對文件有效。對於使用固定文件名或可預測的文件名的程序,通常/dev/full就能知足須要了。對於文件名由某種不可預測的方式生成的程序,還須要構造一個寫滿的分區。一種顯而易見的方式是建立一個真的分區,而後寫滿,然而操做起來卻比較麻煩。本文提供其餘兩種相對簡單的方式。oop

使用內存盤

基本原理爲將內存掛載爲一個磁盤,而後使用dd寫滿。Linux支持兩種內存盤,ramfs和tmpfs. Ramfs必須使用物理內存,沒法利用swap分區,在寫入時會逐漸增加直至用盡所有的內存,也就是沒法人爲設置分區大小,所以不適用於構造分區滿的場景。Tmpfs能夠使用物理內存和swap分區,而且支持設置分區大小。所以,咱們使用tmpfs來構造分區滿。測試

mkdir -p /mnt/ramdisk
mount -t tmpfs -o size=1m tmpfs /mnt/ramdisk
dd if=/dev/zero of=/mnt/ramdisk/test size=1m count=1

使用loop設備

基本原理爲建立一個1M大小的文件,在其上建立EXT2分區,以loop的方式掛載爲分區,而後用dd寫滿。code

dd if=/dev/zero of=a.img bs=1M count=1
mkdir -p /mnt/loop
mkfs.ext2 a.img
mount -t ext2 -o loop a.img /mnt/loop
dd if=/dev/zero of=/mnt/loop/file bs=1M count=1
相關文章
相關標籤/搜索