CentOS 5上以柱面劃分分區,最小為8M
讓我們先來了解在Linux中磁盤的命名方式:
命名: /dev/DEV_FILE
IDE: /dev/hd(現在很少用IDE的硬碟,可以忽略)
SCSI:/dev/sd
sd:表示scsi硬碟
a:表示第一塊磁盤,b表示第二塊磁盤.......以此類推
例:/dev/sda,:
/dev/sdb, ...
同一裝置上的不同分區: 1,2, ...
MBR分區格式最多有4個主分區.或者3個主分區1個擴充分區.第一個邏輯分區必須是從5開始,沒有為什麼這是規定
例:/dev/sda1:表示第一塊磁盤的第一個主分區
/dev/sda5:表示第一塊磁盤的第一個邏輯分區
Linux上有兩種分區方式MBR和GPT
MBR分區
管理工具
fdisk
特點:
【32位扇區數,分區不超過2T】其實大家應該知道,其實作在大多數電腦也是以MBR分區的,
GPT特點
支援128個分區,64位,支援8Z 64Z
MBR分
GPT: 建立完以後一定要記得同步,
gdisk:也可以管理MBR分區格式,但是一般不推薦這麼用,畢竟專一的最好
磁盤管理
裝置檔案
裝置類型
塊裝置
字元裝置
裝置号碼
主裝置号:major number
次裝置号:minor number
硬碟接口類型
并行:ide 133MB\s
scsi:640MB\s
序列槽:
SATA
SAS
USB
`````/dev/sd
a-z
主分區:1-3
擴充分區:4
邏輯分區:必須從5.....
硬碟結構
硬碟是後一個一個的扇區和磁道組成
扇區:一個扇區“512”位元組
柱面:對應的磁道為一個柱面
簇: 兩個扇區為一個“簇”
63x512x1024x256=7.85G
使用分區空間
磁盤分區:
優點:
1、隔離系統和程式
2、安裝多個0S
3、提高修複速度
4、實作磁盤空間配額限制
5、優化I/O性能
分區管理:
blkid:、
塊裝置屬性資訊檢視
blkid [OPTION]... [DEVICE]
-U UUID: 根據指定的UUID來查找對應的裝置
-L LABEL:根據指定的LABEL來查找對應的裝置
檔案系統類型
分區工具fdisk和gdisk
fdisk:
建立MBR分區,也支援GPT,一塊硬碟,最多隻能管理15個分區
fdisk -l[-u][device]
]# fdisk /dev/sdb \\對這塊裝置進行操作
]# fdisk -l \\顯示所有的塊裝置
gdisk: \\子指令跟fdisk基本相似,是以我們也可以用gdisk來管理MBR分區,但是不推薦這麼管理,畢竟不同的分區用不同的管理工具更好
建立GPT分區
p \\分區清單
t \\更改分區類型
n \\建立新分區
d \\删除分區
w \\保持并推出
q \\不儲存退出
partprobe:
重新設定記憶體中的核心分區表
同步分區表
檢視核心識别新的分區
]# cat /proc/partations
新建立的分區一般都沒有被記憶體識别,所有在參加完新的分區以後通知核心重新讀取硬碟分區表
新增分區用
partx -a -n M:N /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
删除分區用
partx -d -n M:N /dev/DEVICE
centos6: –nr N-M
#因為在centos6上partprobe一直存在bug所有不推薦在6上使用partprobe指令,但是在7上已經解決了這個問題
parted指令
檔案系統
檔案系統是作業系統用于明确儲存設備或分區上的檔案的方法和資料結構;即在儲存設備上組織檔案的方法。作業系統中負責管理和存儲檔案資訊的軟體結構稱為檔案管理系統,
簡稱檔案系統。
? 從系統角度來看,檔案系統是對檔案儲存設備的空間進行組織和配置設定,負責檔案存儲并對存入的檔案進行保護和檢索的系統。具體地說,它負責為使用者建立檔案,存入、讀出、修改、轉儲檔案,控制檔案的存取,安全控制,日志,壓縮,
加密等。
ext2,ext3,ext4,xfs,btrfs,reiserfs,jfs,swap
swap:互動分區
CD光牒:iso9660
Windows: fat32, ntfs
Unix: FFS( fast) , UFS( unix) , JFS2
網絡檔案系統: NFS, CIFS
叢集檔案系統: GFS2, OCFS2( oracle)
分布式檔案系統: ceph, moosefs, mogilefs, glusterfs,Lustre
RAW:未經處理或者未經格式化産生的檔案系統
日志型檔案系統:
ext3,ext4,xfs,...
非日志型檔案系統:
ext2,vfat
檔案系統的組成部分:
核心中的子產品: ext4, xfs, vfat
使用者空間的管理工具: mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虛拟檔案系統: VFS
查前支援的檔案系統: cat /proc/filesystems
建立檔案系統
mkfs:
# mkfs.FS_TYPE /dev/DEVICE
# mkfs FS_TYPE /dev/DEVICE
FS_TYPE:
ext4
xfs
btrfs
vfat
-L 'LATEL':設定卷标
建立ext檔案系統
這個指令是專門用來建立ext檔案系統的指令,不要和mkfs混淆
mke2fs:
-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
-m #: 預設5%,為管理人員預留白間占總空間的百分比
-O FEATURE[,...]:啟用指定特性
-O ^FEATURE:關閉指定特性
檔案系統标簽
e2label:
管理ext系列檔案系統的LABEL
# e2abel DEVICE [LABEL]
findfs:查找分區
findfs [options] LABEL=<label>
dinfs [options] UUID=<uuid>
tune2fs
tune2fs:重新設定ext系列檔案系統可調整參數的值
-l: 檢視指定檔案系統超級塊資訊; super block
-L 'LABEL': 修改卷标
-m #: 修預留給管理者的空間百分比
-j: 将ext2更新為ext3
-O: 檔案系統屬性啟用或禁用, –O ^has_journal
-o: 調整檔案系統的預設挂載選項,–o ^acl
-U UUID: 修改UUID号;
dumpe2fs:
用于列印“ext2/ext3/ext4”檔案系統的超級塊和快組資訊
-b:列印檔案系統中預留的塊資訊;
-ob<超級塊>:指定檢查檔案系統時使用的超級塊;
-OB<塊大小>:檢查檔案系統時使用的指定的塊大小;
-h:僅顯示超級塊資訊;
-i:從指定的檔案系統映像檔案中讀取檔案系統資訊;
-x:以16進制格式列印資訊塊成員。
檔案系統檢測和修複
常發生于當機或者非正常關機之後
挂載為檔案系統标記為“ dirty”
fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-a: 自動修複錯誤
-r: 互動式修複錯誤
注意: FS_TYPE一定要與分區上已經檔案類型相同;
e2fsck: ext系列檔案專用的檢測修複工具
-y:自動回答為yes
-f:強制修複
mount
裝置想要能夠被通路就必須得挂載一個目錄下面,通過通路這個目錄才能夠對這個行情進行操作
挂載:将額外檔案系統與根檔案系統某現存的目錄建立起關聯系,進而使得此目錄做為其它檔案通路入口的行為
解除安裝:為解除此關聯關系的過程
把裝置關聯挂載點: mount Point
解除安裝時:可使用裝置,也可以使用挂載點
umount
挂載點下原有檔案在挂載完成後會被臨時隐藏
挂載點目錄一般為空
mount指令挂載檔案系統
mount DEVICE DIR
通過檢視/etc/mtab檔案顯示目前意挂載的所有裝置
mount [-fnrsvw] [-t vfstype] [-o options] device dir
DEVICE:
1、裝置檔案
2、卷标
3、UUID
4、僞檔案系統名稱:proc,sysfs,devtmpfs,configfs
挂載點:
事先存在,使用空目錄
程序中正在使用的裝置無法被解除安裝
選項:
-t vsftype:指定要挂載的裝置上的檔案系統類型
-r:隻讀挂載
-w:讀寫挂載(預設)
-n:不更新/etc/mtab,相當于#mount
-a:自動挂載所有支援自動挂載的裝置(定義在了/etc/fstab,選項中有auto功能)
-L ‘LABEL‘:以卷标指定挂載裝置
-U UUID:以UUID
-B,--bind:綁定一個到你另一個目錄上
-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
選項
解除安裝
檢視挂載情況:
#findmnt MOUNT_POINT
檢視正在通路指定檔案系統的程序:
#lsof MOUNT_POINT
#fuser -v MOUNT_POINT
終止所有在正通路指定的檔案系統的程序:
# fuser -km MOUNT_POINT
解除安裝:
# umount DEVICE
# umount MOUNT_POINT
挂載點和/etc/fstab
在系統後保留檔案系統體系
可在設定蘭使用卷标
使用mount -a 挂載/etc/fstab下的所有檔案系統
/etc/fstab 每行定義一個要挂載的檔案系統;
格式:
要挂載的裝置或僞檔案系統(裝置名、卷标、UUID)、挂載點、檔案系統類型、挂載選項、轉儲頻率 自檢次數
DEVICE/dir /path/dir fstab
挂載選項: defaults
轉儲頻率: 0 :不做備份
1 :每天轉儲
2 :每隔一天轉儲
自檢次序: 0 :不自檢
1 :首先自檢;一般隻有rootfs 才用1
SWAP分區
當系統記憶體空間被占滿時,系統将自動把磁盤交換分區的一部分空間用作系統記憶體,一般是系統記憶體空間的2倍
配置:
基本設定包括:
建立交換分區或者檔案
使用mkswap 寫入特殊簽名
在 在/etc/fstab 檔案中添加适當的條目
使用swapon -a
級别:
磁盤上啟用了很多swap分區,讓這些swap分區有先後的使用順序
1、系統自動指定一個優先級
-1~~~~~~
2、新加入的自動減一(沒有指定優先級的swap)
3、先添加的swap 的預設優先級比較高,除非使用者自己指定一個優先級,而使用者指定的優先級( 是正數) 永遠高于核心預設指定的優先級( 是負數)。
4、分布存放,高性能磁盤存放
CD光牒的使用
在圖形環境下自動啟動挂載/run/media/<user>/<label>
否則就必須被手工挂載
mount /dev/cdrom /mnt/
eject 指令解除安裝或彈出磁盤
建立ISO 檔案
cp /dev/cdrom /root/centos7.iso
kisofs -r -o /root/etc.iso /etc
刻錄CD光牒
odim –v –eject centos.iso
挂載USB 媒體
被核心探測為SCSI 裝置
/dev/sdaX 、/dev/sdbX 、或類似的裝置檔案
在圖形環境中自動挂載
圖示在[ 計算機] 視窗中建立
挂載在/run/media/<user>/<label>
手動挂載
mount /dev/sdb1 /mnt
常見工具
記憶體空間使用狀态:
free [OPTION]
-m: 以MB 為機關
-g: 以GB 為機關
檔案系統空間占用等資訊的檢視工具:
df [OPTION]... [FILE]...
-H 1000
-T 檔案系統類型
-h: human-readable
-i :inodes instead of blocks
-P: 以Posix 相容的格式輸出
檢視某目錄總體空間占用狀态:
du [OPTION]... DIR
-s: summary
dd 指令:convert and copy a file
用法:
dd if =/PATH/FROM/SRC of=/PATH/TO/DEST
bs=# :block size, 複制單元大小
ount=# :複制多少個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 。現在想從第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 檔案
從CD光牒拷貝iso 鏡像
dd if=/dev/cdrom of=/root/cd.iso
拷貝CD光牒資料到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
dd if=/dev/zero bs=4096 count=250000
dd if=/dev/zero bs=8192 count=125000
通過比較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 錯誤。當這種情況影響到硬碟的第一個扇區時,可能導緻硬碟報廢。上邊的指令有可能使這些資料起死回生。且這個過程是安全,高效的
練習
1、建立一個2G的檔案系統,塊大小為2048byte, 預留1%可用空間,檔案系統ext4,卷标為TEST,要求此分區開機後自動挂載至/testdir目錄,且預設有acl挂載選項
2、寫一個腳本,完成如下功能:
(1) 列出目前系統識别到的所有磁盤裝置;
(2) 如磁盤數量為1,則顯示其空間使用資訊;
否則,則顯示最後一個磁盤上的空間使用資訊;
示範步驟
分區啟動swap
1、fdisk /dev/sdb #建立一個分區
2、mkswap -L SWAP_SDB1 /dev/sdb1 #格式化swap
3、vim /etc/fstab #寫入/etc/fstab
LABEL=SWAP_SDB1 swap swap defaults 0 0 #格式
4、swapon -s #檢視以啟用的swap
5、swapon -a #啟用現有的分區
檔案啟動swap
1、dd if=/dev/zero of=/testidr/swapfile bs=1M count=1024
2.mkswap /testdir/swapfile
3.vim /etc/fstab
/testdir/swapfile swap swap defaults 0 0
4.swapon -s
5.swapon -a
删除swap
swapoff /dev/sdb1 或swapoff /testdir/swapfile ##禁用swap分區
删除/etc/fstab相應記錄
删除分區和檔案
建立iOS檔案
cp /dev/sr0 /testdir/centos.iso
挂載iso檔案
mount -o loop /testdir/centos7.iso /mnt/iso
将目錄打包成iso檔案
mkisofs -r -o etc.iso /etc/