一、知識整理
1、每個扇區:512字節;每個柱面:256個磁頭*63個扇區*512字節,大概為8M。centos6中分區使用起始結束柱面;centos7中分區使用起始結束扇區。EBR:擴展分區的第一個扇區。
2、MBR:master root record,1982年,使用32位表示扇區數,分區不超過2T。其中,一共512bytes字節,446bytes為boot loader,64bytes表示分區表,其中16bytes標識一個分區,剩余2bytes為有效性標記55AA。
3、查看前512長度的數據編碼:
[root@localhost mnt]# hexdump -C -n 512 /dev/sdb 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 20 |............... | 000001c0 21 00 83 8a 71 19 00 08 00 00 00 00 40 01 00 8a |!...q.......@...| 000001d0 72 19 83 a0 82 1e 00 08 40 01 00 00 40 00 00 a0 |r.......@...@...| 000001e0 83 1e 83 2b 8a a1 00 08 80 01 00 00 20 00 00 00 |...+........ ...| 000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
4、BIOS只支持MBR;GPT使用UEFI支持,UEFI,統一擴展固件接口。VFS虛擬文件系統。
fdisk也支持GPT,默認創建為MBR。gpt:GUID patition table,支持128個分區,64位,若扇區為512K則能支持8Z,若為4M則支持64Z最大空間。
5、查看分區完成信息的三種方法:lsblk,顯示塊設備;df -lh;cat /proc/partitions。
6、如今的磁盤標識統一為sd*,dev/vda為虛擬磁盤。
7、LBA:logical block address:邏輯區塊地址,數據以塊存儲,是一種尋址模式。塊大小可以指定,一般為1024,2048,4096(4K對齊)。
CHS:cylinder柱面,heads磁頭,sector扇區;CHS尋址模式,是fdisk在分區期間所需的磁盤信息,磁盤信息三維。
8、塊組的起始位置group 0,超級塊super block,用于存儲元數據及各種信息,一般為1、3、5、7、9塊組有備份。
9、tune2fs 只能查看ext文件系統的分區,xfs類型的文件系統更改卷標可以使用mkfs.xfs及mount命令。
10、查看掛載的三種方式:mount;cat /etc/mtab;cat /proc/mounts
11、根據uuid查找是哪個分區:mount -U UUID /dev/*
查看掛載情況
findmnt MOUNT_POINT
查看正在訪問指定文件系統的進程
lsof MOUNT_POINT
fuser -v MOUNT_POINT
終止所有正在訪問指定的文件系統的進程
fuser -km MOUNT_POINT
[root@localhost mnt]# findmnt /dev/sdc3 TARGET SOURCE FSTYPE OPTIONS /mnt/sdc3 /dev/sdc3 ext4 rw,nodev,noatime,data=ordered [root@localhost mnt]# lsof /dev/sdc3 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 11169 root cwd DIR 8,35 4096 2 /mnt/sdc3
12、在已經分區并且已掛載中某個分區的磁盤設備上創建新分區,內核可能在創建完成后無法直接識別。則需要通知內核強制重讀分區:
centos5:partprobe
centos6:添加分區partx -a
刪除分區 partx -d –nr M:N /devsd#
centos7:partprobe
13、文件系統種類總結:
RAW:未經處理或者未經格式化產生的文件系統
光盤:iso9660
集群文件系統:nfs、cifs
內核級分布式文件系統:ceph
windows的文件系統:vfat、ntfs
偽文件系統:proc、sysfs、tmpfs、hugepagefs
Unix的文件系統:UFS/FFS/JFS
交換文件系統:swap
用戶空間的分布文件系統:mogilefs,moosefs、glusterfs
14、dumpe2fs -h 查看超級塊信息(分組信息),分區用分組管理
df 文件系統空間占用等信息的查看工具
-H 按照1000進制顯示
-T 文件系統類型
-h 易讀格式
-i 顯示inode使用
-P 以Posix兼容格式輸出
15、findfs查找分區:
[root@localhost ~]# findfs LABEL=/dev/sdc2 /dev/sdc2 [root@localhost ~]# findfs UUID=2015-12-09-22-36-30-00 /dev/sr0
16、eject彈出光驅,eject -t回收彈出的光驅
17、創建ISO文件:cp /dev/cdrom /testdir/centos7.iso
mkisofs -r -o /root/etc.iso /etc
刻錄光盤:wodim -v -eject centos.iso
18、getenforce查看selinux的狀態
setenforce 0 關閉selinux
二、命令詳解及事例
1、mknod [option]… NAME TYPE [MAJOR MINOR]
創建塊設備或字符設備的特殊文件:
-m MODE 創建后的設備文件的訪問權限
[root@localhost mnt]# mknod cdrom b 11 0 [root@localhost mnt]# ls cdrom media sdb1 sdb2 sdb3 sysroot [root@localhost mnt]# ll 總用量 16 brw-r--r-- 1 root root 11, 0 8月 24 21:03 cdrom
2、lsmod:list modules
用來顯示文件、proc/modules的信息,也就是顯示當前內核模塊裝載的模塊。執行命令會列出所有已載入系統的模塊。例如:顯示ext4被使用了幾次。
[root@localhost mnt]# lsmod Module Size Used by coretemp 13435 0 kvm_intel 162153 0 kvm 525259 1 kvm_intel ext4 578819 4
3、lsof:list open files:列出當前系統打開文件的工具,常用用法是查找應用程序打開的文件名稱和數目??捎糜诓檎页瞿硞€特定應用程序將日志數據記錄到何處或者正在跟蹤某個問題。
-a 表示兩個參數都必須滿足時才顯示結果
filename 顯示打開指定文件的所有進程
-g gid 顯示歸屬gid的進程情況
-i[4|6] [protocol] [@hostname|hostaddr] [:service|port]
46 :ipv4 or ipv6
protocol :tcp or udp
hostname :internet host name
hostaddr :ipv4dizhi
service :/etc/service中的service name可以多個
port :端口號
[root@localhost mnt]# lsof -i :22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1229 root 3u IPv4 19337 0t0 TCP *:ssh (LISTEN) sshd 1229 root 4u IPv6 19339 0t0 TCP *:ssh (LISTEN)
4、fdisk磁盤管理命令,centos6默認分區后沒有acl和attr屬性。
5、創建文件系統的工具mkfs:make file system。
mkfs -t FS_TYPE /dev/DEVICE
-L 設定卷標
mkfs.FS_TYPE /dev/DEVICE
.ext234
.xfs
.btrfs
.vfat
-f 若原來有文件系統,強制執行
[root@localhost ~]# mkfs -t xfs -f /dev/sdc1 meta-data=/dev/sdc1 isize=256 agcount=4, agsize=65536 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 finobt=0 data = bsize=4096 blocks=262144, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal log bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
6、檢測及修復文件系統的工具fsck
因進程意外中止或系統崩潰等原因導致寫入操作非正常終止時,可能會造成文件損壞;建議離線進行。
-t fstype 指明文件系統類型
fsck -t ext4
-a 無需交互而自動修復所有錯誤
-r 交互式修復
ext系列文件系統的專用工具
e2fsck [] device
-y 對所有問題自動回答為yes
-f 即使文件系統處于clean狀態,也要強制進行檢測
[root@localhost ~]# fsck /dev/sdc2 fsck,來自 util-linux 2.23.2 e2fsck 1.42.9 (28-Dec-2013) /dev/sdc2: clean, 11/65536 files, 12644/262144 blocks [root@localhost ~]# fsck.ext4 /dev/sdc2 e2fsck 1.42.9 (28-Dec-2013) /dev/sdc2: clean, 11/65536 files, 12644/262144 blocks
7、調整ext系列文件系統的特性tune2fs
塊大小創建后不可修改
-l 列出超級塊的內容:塊大小默認4096b
-j ext2升級為ext3,即啟用journal日志功能:tune2fs -j /dev/sda2
-L 修改卷標
-m # 調整預留空間百分比
-O 開啟某種特性Feature – ^O取消
-o [^]mount_option 開啟或關閉某種掛載選項mount option
acl ^acl
[root@localhost ~]# tune2fs -o ^acl -O has_journal -m 1 /dev/sdc2 tune2fs 1.42.9 (28-Dec-2013) Setting reserved blocks percentage to 1% (2621 blocks)
8、blkid獲取文件系統類型及UUID;塊設備屬性信息查看
在Linux下可以使用blkid命令對查詢設備上所采用文件系統進行查詢,blkid主要用來對系統的塊設備所使用的文件系統類型、LABEL、UUID等信息進行查詢,要使用這個命令必須安裝e2fsprogs軟件包。直接使用blkid可以列出當前系統所有已經掛載文件系統類型。
[root@localhost mnt]# blkid /dev/sda1: UUID="595c35b0-15d0-46bb-a63a-b1b50f9202fd" TYPE="xfs" /dev/sda2: UUID="diptS0-7Z1c-6unD-IaAW-UCb7-ocJQ-XGUkfk" TYPE="LVM2_member" /dev/sda5: UUID="2daf41fb-a9be-4a6b-8f0a-05d3a40eb40c" TYPE="swap" /dev/sr0: UUID="2015-12-09-22-36-30-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" /dev/mapper/centos-root: UUID="88abbafb-5460-4760-b699-ea2df801348f" TYPE="xfs"
9、創建交換分區:命令:mkswap swapon swapoff
mkswap -f給文件設置swap時使用-f選項強制執行。
啟用swapon
swap [] []
-a 定義在/etc/fstab文件中的所有swap設備
禁用swapoff DEVICE
步驟如下:首先創建一個分區或文件,t為swap類型;然后
[root@localhost etc]# mkswap /dev/sdb1 mkswap: /dev/sdb1: warning: wiping old ext4 signature. 正在設置交換空間版本 1,大小 = 1048572 KiB 無標簽,UUID=e07f645f-79e7-4686-8a93-99e74335c944
使用/etc/fstab掛載或臨時開啟swapon
[root@localhost etc]# swapon /dev/sdb1
卸載時先swapoff,然后再操作。
在掛載時可以給swap指定一個0到32767的優先級,如果用戶沒有指定,那么系統會自動給swap指定一個優先級,這個優先級從-1開始逐漸減1。用戶指定的正數優先級永遠高于系統的自動的負數優先級??梢允褂妹?/span>swapon -p #或直接編輯fstab文件在defaults后面加pri=#。優先級查看:/proc/swaps
[root@localhost etc]# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 1953788 0 -1
按照默認設置,非根用戶只能掛載某些設備(光盤、DVD、usb等等),掛載點通常在/media或/mnt下。
10、dd命令:convert and copy afile
用法:dd if=/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# block size,復制單元大小
count=# 復制所少個bs
of=FILE 寫到所命名的文件而不是到標準輸出
if=FILE 從所命名文件讀取而不是從標準輸入
bs= 指定塊大小
ibs= 一次讀size個byte
obs= 一次寫size個byte
cbs= 一次轉化size個byte
skip=blocks 從開頭忽略blocks個ibs大小的塊
忽略輸入文件即zero的前多少內容
seek=blocks 從開頭忽略blocks個obs大小的塊
忽略輸出到的文件的前多少內容
count=n 只拷貝n個記錄
conv=Conversion…用指定的參數轉換文件
ascii 轉換EBCDIC為ASCII
ebcdic 轉換ASCII為EBCDIC
block 轉換為長度是cbs的記錄,不足部分用空格填充
unblock 替代cbs長度的每一行尾的空格為新行
lcase 把大寫字符轉換為小寫字符
ucase 把小寫字符轉換為大寫字符
swab 交換輸入的每對字節
noerror 出錯時不停止
notrunc 不截短輸出文件
只對文件有效,對設備無效
sync 把每個輸入塊填充到ibs個字節,不足部分用null字符補齊
磁盤拷貝: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
備份:dd if=/dev/sdx of=/dev/sdy將本地的sdx整盤備份到sdy
dd if=/dev/sdx of=/path/to/image 將全盤數據備份到指定路徑的image文件
dd if=/dev/sdx | gzip > /PATH/TO/image.gz 備份數據并壓縮到指定位置
恢復: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
銷毀磁盤數據: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
當硬盤較長時間放置不使用時,磁盤會產生消磁點。當磁頭讀到這些區域時會遇到困難,并可能導致IO錯誤。當這種情況影響到磁盤的第一個扇區時,可能導致硬盤報廢。
11、uuidgen隨機創建一個uuid的值
[root@localhost ~]# uuidgen 83abd3df-deb2-4c39-a43f-cff94a1f9c2b
12、ext系列文件系統的專用管理工具mke2fs
mke2fs [] device
-t {ext234}
mkfs.ext4=mkfs -t ext4=mke2fs -t ext4
-b 指定文件系統的塊大小{1024/2048/4096}
-L 指定卷標
-j 創建有日志功能的文件系統;ext2和ext3的區別在于有無日志模塊
mke2fs -j=mke2fs -t ext3=mkfs -t ext3=mkfs.ext3
-i # 指明inode與字節的比率,即每多少個字節一個inode。
比率適中即可,inode過多占用空間并且無法用盡。
-N 直接指明要給此文件系統創建的inode的數量
-O 啟用某種特性
– ^O關閉某種特性
mke2fs -t ext3 /dev/sdc2 -L /dev/sdc2 -m 3 -O has_journal
-m # 指定給管理員預留的空間,為百分比
[root@localhost ~]# mke2fs -t ext3 /dev/sdc2 -L /dev/sdc2 -m 3
13、e2lable 卷標的查看與設定,格式化之后修改,管理ext系列
查看:e2label device
設定:e2label device LABEL
14、mount命令:mount [-nrw] [-t vfstype] [-o option] device dir
-a 掛載/etc/fstab中的所有文件系統
-r 只讀掛載
-w 讀寫掛載read and write
-n 默認情況下;設備掛載或卸載的操作會同步更新至etc/mtab文件中,-n用于禁止此特性
-t vfstype 指明要掛載的設備上的文件系統類型;多數情況下可以省略;此時mount會通過blkid來判斷要掛載的設備文件系統類型。
-L 掛載時以卷標指明設備,用卷標指定設備
mount -L LABEL DIR
-U 以UUID指明設備
-B 綁定目錄到另一個目錄上,與軟鏈接相似,但并不是軟鏈接文件
此設置查看時只能使用mount命令查看
-o options 掛載選項,多個選項用逗號隔開,可以在/etc/fstab上直接定義。
sync/async 同步/異步操作
atime/noatime 文件或目錄在被訪問時是否更新其訪問時間戳
diratime/nodiratime 目錄在被訪問時是否更新其時間戳
remount 重新掛載
mount -o remount 重新掛載
acl 支持使用facl功能
mount -o acl DEVICE DIR
tune2fs -o acl DEVICE
-ro 只讀 -rw 讀寫
dev/nodev 此設備上是否允許創建設備文件
exec/noexec 是否允許運行此設備上的程序文件
auto/noauto 是否允許自動掛載
user/nouser 是否允許普通用戶掛載此文件系統
suid/nosuid 是否允許程序文件上的suid和sgid特殊權限生效
defaults 默認,相當于rw,suid,dev,exec,auto,nouser,async
關于fstab掛載定義:
轉儲頻率:0不備份;1每天轉儲;2每隔一天轉儲
自檢次序:0不自檢;1首先自檢,一般只有rootfs才用1
當自檢不為0時,若掛載選項寫錯,開機自檢不能正常進入系統,進入修復,輸入root密碼后重新掛載,使用mount -o rw,remount / ,然后編輯/etc/fstab,將錯誤改正或注釋,然后進入系統,成功修復。centos7中可以直接進入。
[root@localhost mnt]# mount -n -o async,noatime,acl,nodev,nouser,suid /dev/sdc3 /mnt/sdc3
15、parted命令:分區命令,操作都是實時生效,可以支持MBR及GPT;
parted DEVICE進入交互模式;
直接使用命令分區
[root@localhost ~]# parted /dev/sdc print 錯誤: /dev/sdc: unrecognised disk label Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: unknown Disk Flags: [root@localhost ~]# parted /dev/sdc mklabel gpt 信息: You may need to update /etc/fstab. [root@localhost ~]# parted /dev/sdc mklabel gpt 警告: The existing disk label on /dev/sdc will be destroyed and all data on this disk will be lost. Doyou want to continue? 是/Yes/否/No? y 信息: You may need to update /etc/fstab. [root@localhost ~]# parted /dev/sdc mkpart primary 1 1024 信息: You may need to update /etc/fstab. [root@localhost ~]# parted /dev/sdc print Model: VMware, VMware Virtual S (scsi) Disk /dev/sdc: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 標志 1 1049kB 1024MB 1023MB primary [root@localhost ~]# parted /dev/sdc rm 1 信息: You may need to update /etc/fstab.
16、gdisk善于管理GPT分區,過程類似于fdisk
三、課后練習見后一篇
原創文章,作者:SilencePavilion,如若轉載,請注明出處:http://www.www58058.com/41288