講師_@王曉春
磁盤(pán)設(shè)備的設(shè)備文件命名:
/dev/DEV_FILE #為[a-z] | 類(lèi)型 |
---|---|
/dev/sd# | SCSI, SATA, SAS, IDE,USB: |
/dev/vd# 、/dev/xvd# | 虛擬磁盤(pán) |
/dev/sr# | 光盤(pán) |
/dev/sda, /dev/sdb, ...
/dev/sda1, /dev/sda5
[root@centos7 ~]$lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 20G 0 disk ├─sda1 8:1 0 1G 0 part /boot ├─sda2 8:2 0 10G 0 part / ├─sda3 8:3 0 2G 0 part [SWAP] ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 5G 0 part /data sr0 11:0 1 10G 0 rom #0為SSD,1為機(jī)械硬盤(pán) [root@centos7 ~]$cat /sys/block/sdd/queue/rotational 1
head
:磁頭
track
:磁道
cylinder
:柱面
sector
:扇區(qū),512bytes
**MBR分區(qū)中最多4個(gè)主分區(qū)或3主分區(qū)+1個(gè)擴(kuò)展分區(qū)(+N個(gè)邏輯分區(qū))
0000-0088 | Master Boot Record 主引導(dǎo)程序 | 主引導(dǎo)程序 |
---|---|---|
0089-01BD | 出錯(cuò)信息數(shù)據(jù)區(qū) | 數(shù)據(jù)區(qū) |
01BE-01CD | 分區(qū)項(xiàng)1(16字節(jié)) | 分區(qū)表 |
01CE-01DD | 分區(qū)項(xiàng)2(16字節(jié)) | |
01DE-01ED | 分區(qū)項(xiàng)3(16字節(jié)) | |
01EE-01FD | 分區(qū)項(xiàng)4(16字節(jié)) | |
01FE | 55 | 結(jié)束標(biāo)志 |
01FF | AA |
字節(jié) | 存貯字節(jié)位 | 含義 |
---|---|---|
第1字節(jié) | 01BE | 引導(dǎo)標(biāo)志:80為活動(dòng)分區(qū),00為非活動(dòng)分區(qū) |
第2,3,4字節(jié) | 01BF-01C1 | 本分區(qū)的起始的磁頭號(hào),扇區(qū)號(hào),柱面號(hào) 磁頭號(hào):2 扇區(qū)號(hào) : 3的低6位 柱面號(hào) : 3的高2位+4 |
第5字節(jié) | 01C2 | 分區(qū)類(lèi)型符 0x00:分區(qū)未用 0x06:FAT16基本分區(qū) 0x05:擴(kuò)展分區(qū) 0x07:NTFS分區(qū) x0B:FAT32基本分區(qū) 0x0F:(LBA模式)擴(kuò)展分區(qū) |
第6,7,8字節(jié) | 01C3-01C5 | 本分區(qū)的結(jié)束的磁頭號(hào),扇區(qū)號(hào),柱面號(hào) 磁頭號(hào):2 扇區(qū)號(hào) : 3的低6位 柱面號(hào) : 3的高2位+4 |
9,10,11,12 | 01C6-01C9 | 起始的扇區(qū) |
13,14,15,16 | 01CA-01CD | 結(jié)束的扇區(qū) |
GPT分組表
Block Bitmap 塊位圖
inode Bitmap 節(jié)點(diǎn)位圖
inode Table 節(jié)點(diǎn)表
Data Blocks 數(shù)據(jù)塊
1.BIOS
2. UEFI
echo '- - -' > /sys/class/scsi_host/host{0,1,2}/scan
作用 | 命令 |
---|---|
列出塊設(shè)備 | lsblk |
創(chuàng)建MBR分區(qū) | fdisk |
創(chuàng)建GPT分區(qū) | gdisk |
高級(jí)分區(qū)操作 | parted |
重新設(shè)置內(nèi)存中的內(nèi)核分區(qū)表版本 | partprobe |
parted的操作都是實(shí)時(shí)生效的,小心使用
parted [選項(xiàng)]... [設(shè)備 [命令 [參數(shù)]...]...]
#創(chuàng)建磁盤(pán)標(biāo)簽 parted /dev/sdb mklabel gpt|msdos #顯示/dev/sdb的分區(qū)表 parted /dev/sdb print #創(chuàng)建主分區(qū),從1M~200M,共199M parted /dev/sdb mkpart primary 1 200 (默認(rèn)M) #刪除第1個(gè)分區(qū) parted /dev/sdb rm 1 #列出分區(qū)信息 parted –l
fdisk /dev/sdb
管理分區(qū)
同步分區(qū)表
cat /proc/partitions
partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
partx -d --nr M-N /dev/DEVICE
CentOS 5,7: 使用partprobe
partprobe [/dev/DEVICE]
uname –r
/kernel/fsext2
(Extended file system) :適用于那些分區(qū)容量不是太大,更新也不頻繁的情況,例如 /boot 分區(qū)ext3
:是 ext2 的改進(jìn)版本,其支持日志功能,能夠幫助系統(tǒng)從非正常關(guān)機(jī)導(dǎo)致的異常中恢復(fù)。它通常被用作通用的文件系統(tǒng)ext4
:是 ext 文件系統(tǒng)的最新版。提供了很多新的特性,包括納秒級(jí)時(shí)間戳、創(chuàng)建和使用巨型文件(16TB)、最大1EB的文件系統(tǒng),以及速度的提升xfs
:SGI,支持最大8EB的文件系統(tǒng)btrfs
(Oracle),reiserfs
, jfs
(AIX),swap
GFS2
, OCFS2
(oracle)mkfs
:mkfs.ext4, mkfs.xfs,mkfs.vfatcat /proc/filesystems
類(lèi)型 | 支持限制 | root分區(qū) | boot分區(qū) | 注釋 |
---|---|---|---|---|
XFS | 500TB | yes | yes | 默認(rèn)分區(qū)格式 |
Ext4 | 50TB | yes | yes | 兼容Ext3/Ext2 |
brtfs | 50TB | yes | yes | 技術(shù)預(yù)覽 |
GFS2 | 2-16個(gè)節(jié)點(diǎn) | yes | no | 集群文件共享存儲(chǔ) |
mkfs.ext4 /dev/DEVICE
mkfs.xfs /dev/DEVICE
mkfs -t FS_TYPE /dev/DEVICE
mkfs -L 'LABEL'
[OPTION] | 注釋 |
---|---|
-t {ext2|ext3|ext4} | 指定文件系統(tǒng)類(lèi)型 |
-b {1024|2048|4096} | 指定塊大小 |
-L 'LABEL’ | 設(shè)置卷標(biāo) |
-j | 相當(dāng)于 -t ext3 mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3 |
-i # | 為數(shù)據(jù)空間中每多少個(gè)字節(jié)創(chuàng)建一個(gè)inode;不應(yīng)該小于block大小 |
-N # | 指定分區(qū)中創(chuàng)建多少個(gè)inode |
-I | 一個(gè)inode記錄占用的磁盤(pán)空間大小,128—4096 |
-m # | 默認(rèn)5%,為管理人員預(yù)留空間占總空間的百分比 |
-O FEATURE[,...] | 啟用指定特性 |
-O ^FEATURE | 關(guān)閉指定特性 |
blkid
e2label
findfs
tune2fs
dumpe2fs
blkid [OPTION]... [DEVICE]
[OPTION] | 注釋 |
---|---|
-U UUID | 根據(jù)指定的UUID來(lái)查找對(duì)應(yīng)的設(shè)備 |
-L LABEL | 根據(jù)指定的LABEL來(lái)查找對(duì)應(yīng)的設(shè)備 |
e2label:管理ext系列文件系統(tǒng)的LABEL
e2label DEVICE [LABEL]
findfs :查找分區(qū)
findfs [options] LABEL=<label>
findfs [options] UUID= <uuid>
tune2fs:重新設(shè)定ext系列文件系統(tǒng)可調(diào)整參數(shù)的值
[OPTION] | 注釋 |
---|---|
-l | 查看指定文件系統(tǒng)超級(jí)塊信息;super block |
-L 'LABEL’ | 修改卷標(biāo) |
-m # | 修預(yù)留給管理員的空間百分比 |
-j | 將ext2升級(jí)為ext3 |
-O | 文件系統(tǒng)屬性啟用或禁用, –O ^has_journal |
-o | 調(diào)整文件系統(tǒng)的默認(rèn)掛載選項(xiàng),–o ^acl |
-U UUID | 修改UUID號(hào) |
-h
:查看超級(jí)塊信息,不顯示分組信息fsck.FS_TYPE
或 fsck -t FS_TYPE
-y
自動(dòng)回答為yes-f
強(qiáng)制修復(fù)mount 設(shè)備名 掛載點(diǎn)
umount 設(shè)備名|掛載點(diǎn)
mount 設(shè)備名 掛載點(diǎn)
[root@centos7 ~]$mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=482108k,nr_inodes=120527,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000) ...
-L 'LABEL'
: 例如 -L 'MYDATA’-U 'UUID'
:例如 -U '0c50523c-43f1-45e7-85c0-a126711d406e’mount 選項(xiàng) 設(shè)備名 掛載點(diǎn)
選項(xiàng) | 注釋 |
---|---|
-t vsftype | 指定要掛載的設(shè)備上的文件系統(tǒng)類(lèi)型 |
-r | readonly只讀掛載 |
-w | read and write, 讀寫(xiě)掛載 |
-n | 不更新/etc/mtab,mount不可見(jiàn) |
-a | 自動(dòng)掛載所有支持自動(dòng)掛載的設(shè)備(定義在了/etc/fstab文件中,且掛載選項(xiàng)中有auto功能) |
-L 'LABEL' | 以卷標(biāo)指定掛載設(shè)備 |
-U 'UUID' | 以UUID指定要掛載的設(shè)備 |
-B | –bind 綁定目錄到另一個(gè)目錄上 |
-o options | (掛載文件系統(tǒng)的選項(xiàng)),多個(gè)選項(xiàng)使用逗號(hào)分隔 |
async | 異步模式 sync 同步模式,內(nèi)存更改時(shí),同時(shí)寫(xiě)磁盤(pán) |
atime/noatime | 包含目錄和文件 |
diratime/nodiratime | 目錄的訪問(wèn)時(shí)間戳 |
auto/noauto | 是否支持自動(dòng)掛載,是否支持-a選項(xiàng) |
exec/noexec | 是否支持將文件系統(tǒng)上運(yùn)行應(yīng)用程序 |
dev/nodev | 是否支持在此文件系統(tǒng)上使用設(shè)備文件 |
suid/nosuid | 是否支持suid和sgid權(quán)限 |
remount | 重新掛載 |
ro | 只讀 |
rw | 讀寫(xiě) |
user/nouser | 是否允許普通用戶(hù)掛載此設(shè)備,/etc/fstab使用 |
acl | 啟用此文件系統(tǒng)上的acl功能 |
loop | 使用loop設(shè)備 |
defaults | 相當(dāng)于rw, suid, dev, exec, auto, nouser, async |
查看內(nèi)核追蹤到的已掛載的所有設(shè)備
cat /proc/mounts
卸載命令
查看掛載情況
findmnt MOUNT_POINT|device
查看正在訪問(wèn)指定文件系統(tǒng)的進(jìn)程
lsof MOUNT_POINT
fuser -v MOUNT_POINT
終止所有在正訪問(wèn)指定的文件系統(tǒng)的進(jìn)程
fuser -km MOUNT_POINT
卸載
umount DEVICE
umount MOUNT_POINT
使用mount -a
命令掛載/etc/fstab中的所有文件系統(tǒng)
/etc/fstab
每行定義一個(gè)要掛載的文件系統(tǒng)
swapon [OPTION]... [DEVICE]
swapoff [OPTION]... [DEVICE]
[OPTION] | 注釋 |
---|---|
-a | 激活所有的交換分區(qū) |
-p PRIORITY | 指定優(yōu)先級(jí) |
/etc/fstab 在第4列中:pri=value
/run/media/<user>/<label>
mount /dev/cdrom /mnt/
eject
彈出光盤(pán)eject -t
彈入光盤(pán)cp /dev/cdrom /root/centos.iso
mkisofs -r -o /root/etc.iso /etc
wodim –v –eject centos.iso
lsusb
/run/media/<user>/<label>
mount /dev/sdb1 /mnt
df
du
dd
df [OPTION]... [FILE]...
[OPTION] | 注釋 |
---|---|
-H | 以1000而非1024為單位(1M=1000K) |
-T | 文件系統(tǒng)類(lèi)型 |
-h | 顯示單位 |
-i | 顯示inode值 |
-P | 以Posix兼容的格式輸出 |
du [OPTION]... DIR
[OPTION] | 注釋 |
---|---|
-h | 顯示單位(K/M/G) |
-s | 摘要 |
--max-depth=# | 指定最大目錄層級(jí) |
dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=# count=#
解釋 | |
---|---|
if=file | 從所命名文件讀取而不是從標(biāo)準(zhǔn)輸入 |
of=file | 寫(xiě)到所命名的文件而不是到標(biāo)準(zhǔn)輸出 |
bs=size | block size, 指定塊大小(既是是ibs也是obs) |
count=n | 復(fù)制n個(gè)bs |
ibs=size | 一次讀size個(gè)byte |
obs=size | 一次寫(xiě)size個(gè)byte |
cbs=size | 一次轉(zhuǎn)化size個(gè)byte |
skip=blocks | 從開(kāi)頭忽略blocks個(gè)ibs大小的塊 |
seek=blocks | 從開(kāi)頭忽略blocks個(gè)obs大小的塊 |
conv=conversion[,conversion...] | 用指定的參數(shù)轉(zhuǎn)換文件 |
conversion | 轉(zhuǎn)換參數(shù): |
ascii | 轉(zhuǎn)換 EBCDIC 為 ASCII |
ebcdic | 轉(zhuǎn)換 ASCII 為 EBCDIC |
lcase | 把大寫(xiě)字符轉(zhuǎn)換為小寫(xiě)字符 |
ucase | 把小寫(xiě)字符轉(zhuǎn)換為大寫(xiě)字符 |
nocreat | 不創(chuàng)建輸出文件 |
noerror | 出錯(cuò)時(shí)不停止 |
notrunc | 不截短輸出文件 |
sync | 把每個(gè)輸入塊填充到ibs個(gè)字節(jié),不足部分用空(NUL)字符補(bǔ)齊 |
fdatasync | 寫(xiě)完成前,物理寫(xiě)入輸出文件 |
dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1
dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrunc
備份:
#將本地的/dev/sda整盤(pán)備份到/dev/sdy `dd if=/dev/sda of=/dev/sdy` #將/dev/sdx全盤(pán)數(shù)據(jù)備份到指定路徑的image文件 dd if=/dev/sdx of=/path/to/image #備份/dev/sdx全盤(pán)數(shù)據(jù),并利用gzip壓縮,保存到指定路徑 dd if=/dev/sdx | gzip >/path/to/image.gz
恢復(fù):
#將備份文件恢復(fù)到指定盤(pán)
dd if=/path/to/image of=/dev/sdx
#將壓縮的備份文件恢復(fù)到指定盤(pán)
gzip -dc /path/to/image.gz | dd of=/dev/sdx
拷貝內(nèi)存資料到硬盤(pán)
#將內(nèi)存里的數(shù)據(jù)拷貝到root目錄下的mem.bin文件
`dd if=/dev/mem of=/root/mem.bin bs=1024`
從光盤(pán)拷貝iso鏡像
#拷貝光盤(pán)數(shù)據(jù)到root文件夾下,并保存為cd.iso文件
dd if=/dev/cdrom of=/root/cd.iso
銷(xiāo)毀磁盤(pán)數(shù)據(jù)
#利用隨機(jī)的數(shù)據(jù)填充硬盤(pán),在某些必要的場(chǎng)合可以用來(lái)銷(xiāo)毀數(shù)據(jù),執(zhí)行此操作以后,/dev/sda1將無(wú)法掛載,創(chuàng)建和拷貝操作無(wú)法執(zhí)行
dd if=/dev/urandom of=/dev/sda1
得到最恰當(dāng)?shù)腷lock size
通過(guò)比較dd指令輸出中命令的執(zhí)行時(shí)間,即可確定系統(tǒng)最佳的block size大小
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
dd if=/dev/zero of=/root/1Gb.file bs=2048 count=500000
dd if=/dev/zero of=/root/1Gb.file bs=4096 count=250000
測(cè)試硬盤(pán)寫(xiě)速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
測(cè)試硬盤(pán)讀速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
#格式化分區(qū)
mke2fs -t ext4 -b 2048 -m 1 -L TEST /dev/sdb1
#創(chuàng)建掛載點(diǎn)
mkdir /mnt/test
#添加到/etc/fstab文件下
echo 'UUID=38f06c8a-bf28-42db-a613-04be1e813f07 /mnt/test ext4 defaults,acl 0 0' /etc/fstab
#UUID使用blkid查看
set -u DISK_NUM=$(fdisk -l | grep 'Disk /dev/' | wc -l) echo 'Disk infomation:' fdisk -l | grep 'Disk /dev/' echo df -h | head -1 if [ $DISK_NUM -eq 1 ] then FIRST_DISKNAME=$(fdisk -l | grep 'Disk /dev' | tr / : | cut -d: -f3 | head -1) df -h | grep '/dev/$FIRST_DISKNAME' else LAST_DISKNAME=$(fdisk -l | grep 'Disk /dev'|tr / : | cut -d: -f3|tail -1) df -h | grep '/dev/$LAST_DISKNAME' fi
#創(chuàng)建文件夾掛載光盤(pán) mkdir /mnt/cd1 mkdir /mnt/cd2 #掛載 mount /dev/sr0 /mnt/cd1 mount /dev/sr1 /mnt/cd2 #準(zhǔn)備合成 mkdir /CentOS-6.10-x86_64-Everything cp -av /mnt/cd1/ /CentOS-6.10-x86_64-Everything/ cp -av /mnt/cd2/Package/*.rpm /CentOS-6.10-x86_64-Everything/Package/ #合并2個(gè)TRANS.TBL $cat /mnt/cd2/Packages/TRANS.TBL >> /CentOS-6.10-x86_64-Everything/Packages/TRANS.TBL #排序 mv /CentOS-6.10-x86_64-Everything/Packages/{TRANS.TBL,TRANS.bak} sort /CentOS-6.10-x86_64-Everything/Packages/TRANS.bak > /CentOS-6.10-x86_64-Everything/Packages/TRANS.TBL rm -f /CentOS-6.10-x86_64-Everything/Packages/TRANS.bak #生成iso mkisofs -o CentOS-6.10-x86_64-Everything.iso /CentOS-6.10-x86_64-Everything #掛載 mount CentOS-6.10-x86_64-Everything.iso /mnt/newcd #配置yum touch /etc/yum.repo/cdrom.repo cat > cdrom.repo <<EOF [cdrom] name=cdrom baseurl=file:///mnt/newcd gpgcheck=0 enabled=1 #更新yum源 yum clean all yum upgrade
聯(lián)系客服