0%
Theme NexT works best with JavaScript enabled
Create a big file in Linux fallocate
Preallocate space to a file.1 2 3 fallocate [-c|-p|-z] [-o offset] -l length [-n] filename fallocate -d [-o offset] [-l length] filename fallocate -x [-o offset] -l length filename
e.g.
fallocate -l 1G test.img
fallocate -l 100M file.out參數
The -l option specifies the length of the allocation, in bytes.
Suffixes of k, m, g, t, p, e may be specified to denote KiB, MiB, GiB, etc.
-n, –keep-size don’t modify the length of the file
-p, –punch-hole punch holes in the file
-o, –offset <num> offset of the allocation, in bytes
-l, –length <num> length of the allocation, in bytes
reference
dd
Note :
dd only exists for older version of Linux and/or when fallocate command is not available.
If possible use fallocate command only for creating binary images.
dd command based method is considered as old and not recommended ,
Convert and copy a file i.e. clone/create/overwrite images 1 2 3 dd if=/path/to/input of=/path/to/output [options] dd if=/dev/zero of=/path/to/output.img [options] dd if=/dev/zero of=YOUR-IMAGE-FILE-NAME-HERE bs=1 count=0 seek=Size-HERE
file of size count*bs bytes
e.g.
dd if=/dev/zero of=test.img bs=1024 count=0 seek=1024
create 1MB file (1024kb), enter:
You will get an empty files (also known as “sparse file”) of arbitrary size
dd if=/dev/zero of=1g.img bs=1 count=0 seek=1G參數
if=FILE:指定輸入檔案名稱(input file)為 FILE。
of=FILE:指定輸出檔案名稱(output file)為 FILE。
ibs=BYTES:指定輸入區塊大小(input block size),一次讀取 BYTES 位元組的資料,預設為 512 位元組。
obs=BYTES:指定輸出區塊大小(output block size),一次寫入 BYTES 位元組的資料,預設為 512 位元組。
bs=BYTES:指定 block size,一次讀取與寫入 BYTES 位元組的資料,此選項會覆蓋 ibs 與 obs 的設定。
cbs=BYTES:一次轉換 BYTES 位元組的資料。
count=N:只處理 N 個輸入區塊,每個區塊的大小為 ibs。
seek=N:在輸出時跳過輸出檔案的前 N 個區塊,每個區塊的大小為 obs。
skip=N:在輸入時跳過輸入檔案的前 N 個區塊,每個區塊的大小為 ibs。
conv=CONVS:指定資料的轉換選項,如果一次要指定多種轉換,則以逗點分隔。
reference
truncate
shrink or extend the size of a file to the specified size
如果指定檔案不存在則建立。
如果指定檔案超出指定大小則超出的資料將丟失。
如果指定檔案小於指定大小則用 0 補足。
is likely the fastest
it creates a “sparse file”.
Essentially, a sparse file is a section of disk that has a lot of the same data, and the underlying filesystem “cheats” by not really storing all of the data, but just “pretending” that it’s all there.
e.g.
truncate -s 10G gentoo_root.img參數
-c, –no-create
-o, –io-blocks
treat SIZE as number of IO blocks instead of bytes
-r, –reference=RFILE
-s, –size=SIZE
set or adjust the file size by SIZE bytesreference
dd vs fallocate
dd is slow for this purpose
fallocate, which uses the desired space without having to actually writing to it
dd is essentially a copy and that forces you to write every block of data (thus, initializing the file contents)
reference