-
dd命令:convert and copy a file
-
用法:
-
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#:block size,
-
復制單元大小 count=#:復制多少個bs of=file 寫到所命名的文件而不是到標準輸出
-
if=file從所命名文件讀取而不是從標準輸入
-
bs=size指定塊大小(既是是ibs也是obs)
-
ibs=size 一次讀size個byte
-
obs=size 一次寫size個byte
-
cbs=size 一次轉化size個byte
-
skip=blocks從開頭忽略blocks個ibs大小的塊
-
seek=blocks從開頭忽略blocks個obs大小的塊
-
count=n 只拷貝n個記錄
-
conv=conversion[,conversion...] 用指定的參數轉換文件。
-
轉換參數:
-
ascii 轉換 EBCDIC 為 ASCII。
-
ebcdic 轉換 ASCII 為 EBCDIC。
-
block 轉換為長度為 cbs 的記錄,不足部分用空格填充。
-
unblock替代cbs長度的每一行尾的空格為新行。
-
lcase 把大寫字符轉換為小寫字符。
-
ucase 把小寫字符轉換為大寫字符。
-
swab 交換輸入的每對字節。
-
noerror 出錯時不停止。
-
notrunc 不截短輸出文件。
-
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊
-
-
磁盤拷貝:
-
dd if=/dev/sda of=/dev/sdb備份MBR:
-
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
-
破壞MBR中的bootloader:
-
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
-
有二進制文件 fileA, size>2K?,F在想從第64個字節位置 開始讀取,需要讀取的大小是128Byts。又有fileB, 想把上 面讀取到的128Bytes寫到第32個字節開始的位置,替換 128Bytes,請問如何實現?
-
#dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31
-
conv=notrunc
-
備份:
-
dd if=/dev/sdx of=/dev/sdy 將本地的/dev/sdx整盤備份到/dev/sdy dd if=/dev/sdx of=/path/to/image
-
將/dev/sdx全盤數據備份到指定路徑的image文件
-
dd if=/dev/sdx | gzip >/path/to/image.gz
-
備份/dev/sdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑
-
-
恢復:
-
dd if=/path/to/image of=/dev/sdx
-
將備份文件恢復到指定盤
-
gzip -dc /path/to/image.gz | dd of=/dev/sdx
-
將壓縮的備份文件恢復到指定盤
-
拷貝內存資料到硬盤
-
dd if=/dev/mem of=/root/mem.bin bs=1024
-
將內存里的數據拷貝到root目錄下的mem.bin文件
-
從光盤拷貝iso鏡像
-
dd if=/dev/cdrom of=/root/cd.iso
-
拷貝光盤數據到root文件夾下,并保存為cd.iso文件
-
銷毀磁盤數據
-
dd if=/dev/urandom of=/dev/sda1
-
利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據
-
執行此操作以后,/dev/sda1將無法掛載,創建和拷貝操作無法執行。
-
-
得到最恰當的block size
-
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
-
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
-
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
-
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
-
通過比較dd指令輸出中所顯示的命令執行時間,即可確定系統 最佳的block size大小
-
測試硬盤讀寫速度
-
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
-
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
-
通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度
-
修復硬盤
-
dd if=/dev/sda of=/dev/sda 當硬盤較長時間(比如1,2年)放置不使用后,磁盤上 會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可 能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死 回生。且這個過程是安全,高效的。
/etc/fstab 每行定義一個要掛載的文件系統;
要掛載的設備或偽文件系統
掛載點
文件系統類型
掛載選項
轉儲頻率
自檢次序
要掛載的設備或偽文件系統: 設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc,sysfs)
掛載選項: defaults
轉儲頻率: 0:不做備份
1,每天轉儲
2:每隔一天轉儲
自檢次序: 0:不自檢
1:首先自檢;一般只有rootfs才用1
交換分區是系統RAM的補充
基本設置包括:
創建交換分區或者文件
使用mkswap寫入特殊簽名
在/etc/fstab文件中添加適當的條目
使用swapon -a 激活交換空間啟用:swapon
swapon [OPTION]… [DEVICE]
-a:激活所有的交換分區;
-p PRIORITY:指定優先級
/etc/fstab:pri=value
禁用:swapoff [OPTION]… [DEVICE]
SWAP的優先級
用戶可以給某個swap指定一個0到32767的優先級
如果用戶沒有指定,那么核心會自動給swap指定一個優 先級,這個優先級從-1開始,每加入一個新的沒有用戶 指定優先級的swap,會給這個優先級減一。
先添加的swap的缺省優先級比較高,除非用戶自己指定 一個優先級,而用戶指定的優先級(是正數)永遠高于核心 缺省指定的優先級(是負數)。
優化性能:分布存放,高性能磁盤存放
掛載(Mounting)意味著使外來的文件系統看起來如同是主
目錄樹的一部分。
訪問前、介質必須被掛載
摘除時,介質必須被卸載
按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、軟盤、USB等等)
掛載點通常在/media 或/mnt下在圖形環境下自動啟動掛載/run/media/<user>/<label>
否則就必須被手工掛載
mount /dev/cdrom /mnt/
eject命令卸載或彈出磁盤
創建ISO文件
cp /dev/cdrom /root/centos7.iso
genisoimage/mkisofs -r -o /root/etc.iso /etc
刻錄光盤
wodim –v –eject centos.iso被內核探測為SCSI設備
/dev/sdaX、/dev/sdbX、或類似的設備文件
在圖形環境中自動掛載
圖標在[計算機]窗口中創建
掛載在/run/media/<user>/<label>
手動掛載mount /dev/sdb1 /mnt
內存空間使用狀態:
free [OPTION]
-m: 以MB為單位
-g: 以GB為單位
文件系統空間占用等信息的查看工具:
df [OPTION]… [FILE]…
-h 1024
-H 1000
-T 文件系統類型
-h: human-readable
-i:inodes instead of blocks
-P: 以Posix兼容的格式輸出
查看某目錄總體空間占用狀態:
du [OPTION]… DIR
-h: human-readable
-s: summary
原創文章,作者:sjfbjs,如若轉載,請注明出處:http://www.www58058.com/41378