1.相關命令:lsblk、fdisk、gdisk、parted、mkfs、mke2fs、blkid、e2label、findfs、tune2fs、dumpe2fs、fsck、e2fsck、mount、swapon、swapoff、mkisofs、wodim、free、df、du、dd。
2.列出塊設備:lsblk
3.fdisk:創建分區,創建MBR分區,也支持GPT,對於一塊硬盤,最多隻能管理15分區。
· p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
w 保存並退出
q 不保存並退出
4.gdisk:創建GPT分區
5.parted:命令操作都是實時生效的,請小心操作
增加分區,同步分區表
partx -a /dev/sda
刪除分區,同步分區表
partx -d --nr 6-8 /dev/sda
6.mkfs:格式化分區類型:有數據磁盤請先進行備份!
設置卷標可以加上-L 例如:[root@nzg7 ~]# mkfs.ext4 -L luyubo /dev/sdb
7.mke2fs:ext系列文件系統專用管理工具
-t {ext2|ext3|ext4}
-b {1024|2048|4096}
-L‘LABEL‘ 卷標
-j 等於-t ext3
mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 -i
#: 爲數據空間中每多少個字節創建一個inode;此大 小不應該小於block的大小
-N #:爲數據空間創建個多少個inode
-I 一個inode記錄大小128---4096
-m #: 默認5%,爲管理人員預留空間佔總空間的百分比
-O FEATURE[,...]:啓用指定特性
-O ^FEATURE :關閉指定特性
8.blkid:查看磁盤UUID
9.e2label管理ext系列文件系統的卷標
10.findfs:查找分區,根據所給出的卷標或者UUID來查找整個磁盤,搜索是否有匹配的卷標或者UUID
11. tune2fs: 重新設定ext系列文件系統可調整參數的值
-l:查看指定文件系統超級塊信息;
super block -L 'LABEL':修改卷標
-m #:修預留給管理員的空間百分比
-j: 將ext2升級爲ext3
-O: 文件系統屬性啓用或禁用,
–O ^has_journal
-o: 調整文件系統的默認掛載選項,
–o ^acl -U UUID: 修改UUID號
12. dumpe2fs: -h:查看超級塊信息(分組信息),分區用分組管理
13. fsck:文件系統檢查
-a: 自動修復錯誤
-r: 交互式修復錯誤
14.e2fsck: ext系列文件專用的檢測修復工具
-y:自動回答爲yes
-f:強制修復
15.mount: 將額外文件系統與根文件系統某現存的目錄建立起關聯 關係,進而使得此目錄做爲其它文件訪問入口的行爲
-t vsftype:指定要掛載的設備上的文件系統類型
-r: readonly,只讀掛載
-w: read and write, 讀寫掛載
-n: 不更新/etc/mtab,相當於#mount
-a:自動掛載所有支持自動掛載的設備(定義在了/etc/fstab 文件中,且掛載選項中有auto功能)
-L 'LABEL': 以卷標指定掛載設備
-U 'UUID': 以UUID指定要掛載的設備
-B, --bind: 綁定目錄到另一個目錄上
查看內核追蹤到的已掛載的所有設備: cat /proc/mounts
-o options:(掛載文件系統的選項),多個選項使用逗號分隔
async:異步模式
sync:同步模式,內存更改時,同時寫磁盤
atime/noatime:包含目錄和文件
diratime/nodiratime:目錄的訪問時間戳
auto/noauto:是否支持自動掛載,是否支持-a選項
exec/noexec:是否支持將文件系統上運行應用程序
dev/nodev:是否支持在此文件系統上使用設備文件
suid/nosuid:不否支持suid和sgid權限
remount:重新掛載
ro:只讀
rw:讀寫
user/nouser:是否允許普通用戶掛載此設備,默認管理員才能掛載
acl:啓用此文件系統上的acl功能
Defaults:相當於rw, suid, dev, exec, auto, nouser, async
16.swapon:交換分區激活
Swapon -a
17.swapoff:交換分區關閉
18.mkisofs:創建iso文件
19.wodim:刻錄光盤
wodim –v –eject centos.iso
20.free:查看內存利用率
-m: 以MB爲單位
-g: 以GB爲單位
21.df:查看當前磁盤利用率
22.du:查看目錄大小,一般可以sh使用
23.dd:一般用於寫入數據
dd命令:convert and copy a file
用法:
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=#:block size, 複製單元大小
count=#:複製多少個bs of=file 寫到所命名的文件而不是到標準輸入
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
有一個大與2K的二進制文件fileA。現在想從第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/p_w_picpath
將/dev/sdx全盤數據備份到指定路徑的p_w_picpath文件
dd if=/dev/sdx | gzip >/path/to/p_w_picpath.gz
備份/dev/sdx全盤數據,並利用gzip工具進行壓縮,保存到指定路徑
恢復:
dd if=/path/to/p_w_picpath of=/dev/sdx
將備份文件恢復到指定盤
gzip -dc /path/to/p_w_picpath.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將無法掛載,創建和拷貝操作 無法執行。
測試硬盤讀寫速度
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錯誤。當這種情況影響到硬盤的第一個扇區時 ,可能導致硬盤報廢。上邊的命令有可能使這些數據起死 回生。且這個過程是安全,高效的。
24.掃描磁盤,虛擬機開機狀態無法檢查到新磁盤。
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan
25. 查看mbr
[root@localhost ~]# hexdump -C -n 512 /dev/sda
26.備份mbr
27.恢復mbr
28.破壞 boot loader
[root@localhost ~]# dd if=/dev/zero of=/dev/sdd bs=1 count=2 skip=500 seek=510
hexdump -C -v -n 512 /dev/sdd
29.清除分區標識
[root@localhost ~]# dd if=/dev/zero of=/dev/sdd bs=1 count=2 skip=510 seek=510
30.恢復分區標識
[root@localhost ~]# dd if=/dev/zero of=/dev/sdd bs=1 count=64 skip=446 seek=446
31.恢復分區表
[root@localhost ~]# dd if=/dev/zero of=/dev/sdd bs=1 count=64 skip=446 seek=446
32.創建swap
1.設置文件類型爲swap
2.清空swapfile文件
3.使用mkswap寫入簽名
4.寫入/etc/fstab文件中,pri設置swap的優先級
/dev/sdb1 swap swap defaults,pri=10 0 0
5.使用swapon -s查看當前已經有swap,然後使用swapon -a讀取配置文件生效
6.使用swapon -s查看文件類型
33.實現loop設備和文件文件關聯
1.設置文件文件大小
[root@localhost mnt]# dd if=/dev/zero of=/home/bigfile bs=1M count=500
2.關聯設備文件
[root@localhost mnt]# losetup /dev/loop1 /home/bigfile
3.設置文件 文件系統
[root@localhost mnt]# mkfs.ext4 /home/bigfile
4.掛載loop設備到目錄
[root@localhost mnt]# mount /dev/loop1 /mnt/bigfile/
5.查看loop掛載關聯設備
[root@localhost mnt]# losetup -a
34.設置磁盤配額
1.編輯/etc/fstab
/dev/sdb1 /home ext4 usrquota,grpquota 0 0
2.重新載入/etc/fstab配置文件
3.創建配額數據庫
4.啓用數據庫
5.配置配額項
或者使用命令setquota luyubo1 3M 5M 0 0 /home
6.測試
先使用dd寫入數據
dd if=/dev/zero of=bb.txt bs=1M count=3
35.實現軟件raid
1.設置文件類型爲:Linux raid auto
2.創建raid設備
3.格式化md0文件系統
4.寫入至/etc/fstab文件內。
5.生成配置文件
6.重啓raid服務
7.測試
8.刪除raid
[root@localhost ~]# vim /etc/fstab #刪除掛載信息
36.邏輯卷管理
1.創建物理卷使用pvcreate
2.創建卷組並給卷組增加分區vgcreate
3.創建新的邏輯卷使用lvcreate
1.新建邏輯卷
設置文件類型:8e
創建文件系統
掛載
擴展邏輯卷
創建塊設備