磁盤管理(二)之swap、dd工具使用
一、掛載點和/etc/fstab
(1)配置文件/etc/fstab,當系統啟動時,自動加載該文件,會把寫在配置文件里面的所有掛載點全部自動掛載上去,只要按照格式寫,就不會丟失。
(2)文件掛載配置文件,如下圖:
/etc/fstab每行定義一個要掛載的文件系統;
要掛載的設備或偽文件系統(設備文件、LABEL(LABEL="")、UUID(UUID="")、偽文件系統名稱(proc, sysfs))
掛載點
文件系統類型(光盤:iso9660;文件掛文件的類型則為:none,選項為bind)
掛載選項 (defaults——相當于rw, suid, dev, exec, auto, nouser, async)
轉儲頻率(0:不做備份;1:每天轉儲;2:每隔一天轉儲)
自檢次序(0:不自檢;1:首先自檢;一般只有rootfs才用1)
(3) 使用mount -a 命令生效掛載在/etc/fstab中的所有文件系統
(4)使用文件來模擬分區,用來測試格式化等操作(當磁盤空間已經全部分完),則可以使用下面的命令來創建:
#dd if=/dev/zero of=/testdir/partfile bs=1M count=500
如上圖,同樣可以使用格式化命令mkfs.ext4都可以對該文件進行格式化。
當格式化完成后,使用命令blkid查看時是沒有改文件系統的,則需要使用mount命令來進行掛載,如下圖:
但在掛載的過程中會出現下圖中錯誤,需要按照提示來添加相應的選項即可。
掛載完成后,使用命令#mount,可以看到,這文件的掛載是映射到了/dev/loop上。通過這樣設置,可以通過文件來做“移動硬盤”使用。
(注:在CentOS6上,loop設備默認是8個;在CentOS7上,loop則是隨機生成,沒有數量上的限制。如果是使用loop設備來掛載,則使用命令#losetup /dev/loop3 /testdir/partfile;mount /dev/loop3 /mnt/partfile3)
通過在/etc/fstab上設置,讓系統開機自檢掛載(永久生效自動掛載)
二、swap交換分區:
1、swap交換分區是系統RAM的補充。
(如下圖,命令#free顯示的以k為單位;#free -m是以M為單位顯示;#free -g是以G為單位顯示)
2、如何知道系統中的swap是由誰提供的?
命令#cat /proc/swaps
3、由于分區的局限性(已經分好分區的swap是無法擴展的),因此如何進行swap的增加,如下圖:
新分區做為swap,并修改分區編號保存后,如下圖:
4、格式化swap:
mkswap -L swap_sba6 /dev/sda6
5、修改/etc/fstab:
6、激活所有的swap:
#swapon –a
(注:可以使用命令#swapon -s 查看激活的swap)
7、設置swap的優先級:
(pri的設置為0至32767)
#vim /etc/fstab
defaults的默認設置優先級是負數,所以需要手動去設置swap的優先級,如下圖:
在/etc/fstab設置完優先級后,要使用命令#swapoff /dev/sda6禁用;再用命令#swapon -a 激活
8、swap的優先級了解:
如果用戶沒有指定,那么核心會自動給swap指定一個優先級,這個優先級從-1開始,每加入一個新的沒有用戶指定優先級的swap,會給這個優先級減一。
先添加的swap的缺省優先級比較高,除非用戶自己指定一個優先級,而用戶指定的優先級(是正數)永遠高于核心缺省指定的優先級(是負數)。
優化性能:分布存放,高性能磁盤存放
9、使用文件來做swap :
(當磁盤的分區把空間全部用完了,可以考慮使用文件來做swap分區)如下圖:
生效:#swapon -a
10、swap的刪除:
首先要禁用:#swapoff /dev/sda6 ;#swapoff /testdir/swapfile
然后到配置文件/etc/fstab上刪除相應的添加記錄,刪除相應的分區和文件(rm -rf /testdir/swapfile)即可。
三、移動介質掛載使用:(移動硬盤因為格式為ntfs使用不了)
#mount /dev/sd? /mnt/usb
拔除U盤前需要做的動作是命令#sync(最好執行三次,以免數據沒有寫入到U盤上)
#umount /mnt/usb 然后拔除U盤
四、光盤的使用
mount /dev/cdrom/mnt/
eject命令卸載或彈出光驅磁盤;eject -t 彈入光驅
創建ISO文件:
cp /dev/cdrom /root/centos7.iso
mkisofs -r -o /root/etc.iso /etc (將目錄打包成ISO,作為備份)
刻錄光盤:wodim -v -eject centos.iso
五、常見工具:
內存空間使用狀態:free
-m: 以MB為單位
-g: 以GB為單位
文件系統空間占用等信息的查看工具:df
-H 以1000為單位
-T 文件系統類型
-h: human-readable
-i:inode sinstead of blocks
-P: 以Posix兼容的格式輸出(較多用于設備名稱過長、顯示不整齊時)
查看某目錄總體空間占用狀態:du
-h: human-readable
-s: summary
六、dd工具的使用:
1、dd命令:convert and copy a file
2、用法:
ddif=/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個記錄
cbs=size 一次轉換多少byte
3、conv=conversion[,conversion…] 用指定的參數轉換文件。
轉換參數:
ascii 轉換EBCDIC 為ASCII
ebcdic 轉換ASCII 為EBCDIC
block 轉換為長度為cbs 的記錄,不足部分用空格填充。
unblock 替代cbs長度的每一行尾的空格為新行
lcase 把大寫字符轉換為小寫字符
ucase 把小寫字符轉換為大寫字符
nocreate不創建輸出文件
noerror 出錯時不停止
notrunc 不截短輸出文件。
sync 把每個輸入塊填充到ibs個字節,不足部分用空(NUL)字符補齊
4、磁盤拷貝:ddif=/dev/sdaof=/dev/sdb
備份MBR:ddif=/dev/sdaof=/tmp/mbr.bakbs=512 count=1
破壞MBR中的bootloader:ddif=/dev/zero of=/dev/sdabs=64 count=1 seek=446
5、備份:
將本地的/dev/sdx整盤備份到/dev/sdy:dd if=/dev/sdx of=/dev/sdy
將/dev/sdx全盤數據備份到指定路徑的image文件:dd if=/dev/sdx of=/path/to/image
備份/dev/sdx全盤數據,并利用gzip工具進行壓縮,保存到指定路徑:dd if=/dev/sdx|gzip >/path/to/image.gz
6、恢復:
將備份文件恢復到指定盤:dd if=/path/to/image of=/dev/sdx
將壓縮的備份文件恢復到指定盤:gzip -dc /path/to/image.gz | dd of=/dev/sdx
7、拷貝內存資料到硬盤
將內存里的數據拷貝到root目錄下的mem.bin文件:dd if=/dev/mem of=/root/mem.bin bs=1024
從光盤拷貝iso鏡像:dd if=/dev/cdrom of=/root/cd.iso
8、銷毀磁盤數據
dd if=/dev/urandom of=/dev/sda1
注:利用隨機的數據填充硬盤,在某些必要的場合可以用來銷毀數據。執行此操作以后,/dev/sda1將無法掛載,創建和拷貝操作無法執行。
9、得到最恰當的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大小
10、測試硬盤讀寫速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通過上兩個命令輸出的執行時間,可以計算出測試硬盤的讀/寫速度
11、修復硬盤
dd if=/dev/sda of=/dev/sda
當硬盤較長時間(比如1,2年)放置不使用后,磁盤上會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致I/O錯誤。當這種情況影響到硬盤的第一個扇區時,可能導致硬盤報廢。上邊的命令有可能使這些數據起死回生。且這個過程是安全,高效的。
1、創建一個2G的文件系統,塊大小為2048byte,預留1%可用空間,文件系統ext4,卷標為TEST,要求此分區開機后自動掛載至/testdir目錄,且默認有acl掛載選項
2、寫一個腳本,完成如下功能:
(1) 列出當前系統識別到的所有磁盤設備;
(2) 如磁盤數量為1,則顯示其空間使用信息;
否則,則顯示最后一個磁盤上的空間使用信息;
腳本代碼:
腳本執行效果:
原創文章,作者:Aaron_wang,如若轉載,請注明出處:http://www.www58058.com/41077
文章結構層次清晰,內容完整,圖文并貌,同時通過自己的實際操作,鞏固了當天所學的知識。建議多加練習,熟練運用。