#10 Linux硬碟管理
1.儲存管理
傳統的磁碟分割槽
RAID技術,軟RAID的實現
LVM
檔案系統管理
ext,xfs,btrfs(瞭解)
2.程式包管理
rpm、yum、dnf
3.sed、gawk
4.程式管理
5.網路管理
網路基礎只是(Cisco CCNA+CCNP)
網路的屬性管理
網路引數監測
6.Linux核心管理
核心編譯和安裝
核心的裁剪
定製核心
7.Linux系統啟動流程
centos5、6、7
8.系統安裝
kickstart、dhcp、pxe
9.shell指令碼的完善
Linux儲存管理
磁碟的介面型別:
IDE:並口,來源於ATA,133Mbps
SCSI:並口,
UltraSCSI320:320Mbps
UltraSCSI640:640Mbps
窄帶:7 14
寬頻:15 30
SATA:serial ATA,串列埠
SATA1 2 3 6Gbps
SAS:串列埠
6Gbps
USB:
1.0 1.1 2.0 3.0:480Mbps 3.1:10Gbps
雙通道:160Mbps
IOPS:每秒IO次數
IDE:機械硬碟,50IOPS
SCSI:機械硬碟,100-200IOPS
固態硬碟,400左右
SATA:機械硬碟,100左右
固態硬碟,400左右
SAS:機械硬碟,200左右
固態硬碟,800左右
PCI-E固態硬碟:100000+ ES3000 DEC
IDE:主機板上兩個介面,4塊IDE硬碟
SATA:4-6介面,4-6塊硬碟
SCSI:7 15
SAS:16384塊硬碟
寫一個指令碼,向每個預設shell為bash的使用者問好,如:Hi root
#!/bin/bash
#
for I in $(grep "bash$" /etc/passwd | cut -d: -f1) ; do
echo "Hi $I"
done
機械硬碟:
track:磁軌,
sector:扇區,512bytes,現在所說的扇區,實際上是平均值;
cylinder:柱面,從磁軌向所有碟片做投影;
partition:分割槽,分割槽就是基於柱面來劃分的儲存空間;
head:磁頭,每個磁碟表面都有一個磁頭;
裝置檔案:/dev
裝置檔案是關聯到硬體裝置的驅動程式和裝置的訪問入口;
裝置號:
major:主裝置號,區分裝置的型別,用於標明裝置所需的驅動程式;
minor:次裝置號,區分同種型別下的不同裝置,是特定裝置的訪問入口;
mknod命令:
mknod - make block or character special files
mknod [OPTION]... NAME TYPE [MAJOR MINOR]
-m, --mode=MODE;指定檔案許可權
塊裝置為b
字元裝置為c
裝置型別:
塊裝置:用於隨機訪問的裝置,資料儲存和交換的單位是塊;
字元裝置:用於線性訪問的裝置,資料的交換單位一般是字元;
裝置檔名:IANA-->ICANN
ICANN的命名標準為:所有的裝置都放在/dev/
/dev/
IDE:hd[a-d]
SCSI/SATA/SAS/USB:sd[a-z] sda sdaa
RHEL6、centos6開始:
所有的介面型別的硬碟裝置統一命名為sd[a-z]
裝置引用方式:
裝置檔名
卷標(volume lable)
UUID:全域性唯一識別符號,128bit
如何使用一個新的硬碟裝置?
分割槽
建立檔案系統(格式化)
掛在分割槽
為何分割槽?
1.優化I/O效能
2.實現磁碟空間的配額限制
3.進行高速修復
4.隔離系統檔案和其他程式檔案
5.安裝多個作業系統
如何分割槽?
MBR:硬碟空間小於2TB
MBR:master(main) boot record,主開機記錄,起源於1982年,
0磁軌0扇區:512byte
446bytes:boot loader,引導載入程式,grub
64bytes:partition
table,分割槽表,每16bytes表明一個分割槽的內容,因此一共有四個主分割槽;
注意:
1.主分割槽+擴充套件分割槽,最多可以有4個,其分割槽表位的編號依次為:1,2,3,4
2.邏輯分割槽的編號從5考試,不管前面的四個數字編號是否被佔用;
2bytes:結束標記,55AA
GPT:硬碟空間大於2TB
guide partition table,guid分割槽表,支援128個分割槽
uefi(統一擴充套件韌體介面)的硬體可以支援GPT,boot legacy
通常使用的分割槽工具,
fdisk:
用於建立和管理MBR分割槽,對於一塊硬碟,最多隻能管理15個分割槽;
gdisk:gun disk
用於建立和管理gpt分割槽,
如果使用fdisk或gdisk命令對於已經有分割槽並掛載的磁碟的剩餘空間進行再次分割槽,分割槽的資訊即便是儲存了,也不會被核心重新讀取;如果要讓核心識別此類分割槽:
1.重啟計算機
2.partprobe命令或者partx命令,強制核心重讀分割槽表;
centos5/7:partprobe -a [device]
如果省略了裝置名,則表示重讀所有磁碟的分割槽表
centos6/7:partprobe -a [device]
partx -af [device]
fdisk分割槽示例:
fdisk - Partition table manipulator for Linux
fdisk -l [-u] [device...]
檢視指定磁碟的分割槽表,如果省略device引數,則顯示所有磁碟裝置的分割槽表;
fdisk device
對於指定裝置進行分割槽管理;
fdisk子命令:
d delete a partition
l list known partition types
m print this menu
n add a new partition
e extended
p primary partition(1-4)
l logical
p print the partition table
q quit without saving changes
t change a partition's system id
w write table to disk and exit
parted:gun
高階分割槽工具,實時生效;
parted - a partition manipulation program
parted [options] [device [command [options...]...]]
parted /dev/sdb mklabel gpt|modos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200
parted /dev/sdb rm 1
echo '- - -' > /sys/class/scsi_host/host2/scan
強制核心識別在開機狀態下插上的SCSI介面的磁碟
寫一個指令碼,將一個命令所依賴的共享庫檔案複製到/mnt/sysroot/lib64目錄中,如果庫檔案已經存在於目標目錄中,就不復制。
#!/bin/bash
#
DEST=/mnt/sysroot/lib64
if [ ! -d $DEST ] ; then
mkdir -p $DEST
fi
until [ "$CMD" == 'quit' ] ; do
read -p "give me a command: " CMD
if which --skip-alias $CMD &> /dev/null ; then
for I in $(ldd $(which --skip-alias $CMD) | grep -o "/[^[:space:]]\+") ; do
SRCLIB=$(basename $I)
if [ ! -e ${DEST}${SRCLIB} ] ; then
cp $I $DEST
fi
done
else
echo "Command not invalid."
fi
done
建立檔案系統:
FHS /bin /dev /cet
許可權
檔案的命名規則
為什麼要建立檔案系統?
一百萬冊圖書
平面分類管理
想要搜尋需要的圖書,需要遍歷;
空間分類管理
門類
幾次有限的但有效的查詢即可;
建立檔案系統實際上就是給分割槽進行儲存空間的邏輯編制;
格式化:
低階格式化:
物理層面完成格式化,在磁碟裝置出廠時,通過低階格式化來建立磁軌;
主要作用:劃分磁軌
高階格式化:
分割槽之後進行,
主要作用:用來建立檔案系統,為分割槽構建邏輯編制單元,Windows系統邏輯單元=簇,Linux系統邏輯單元=塊,無論是簇還是塊,都是將一個或多個扇區組織在一起,共同完成資料儲存;
簇:512b 1024 2048 4096 8192 16384 32768 65536
塊:1024 2048 4096
注意:
1.一個塊只能放置一個檔案的內容,一個檔案可以佔用多個塊;
2.如果在某個分割槽中,將建立大量的小檔案,把塊劃分的小一些;反之,塊就大些
3.如果分割槽空間比較大,塊也應該大一些;
在一個分割槽中建立了檔案系統:
首先,會將分割槽劃分成大小相等的若干塊;
後設資料塊
後設資料——inode(index node)
檔案的屬性:
檔案的大小
檔案許可權
檔案所有者
檔案時間戳
資料塊指標
存放後設資料的固定的儲存空間,稱為inode;
每個inode都有其對應的inode編號
資料塊
存放檔案中所包含的流式資料
特殊檔案:
裝置檔案:block special 或 character special
僅僅是將元素資料中的資料塊指標換成了裝置號;
符號連結檔案:symbolic link
僅僅是將後設資料中的資料塊指標換成了另一個檔案的訪問路徑;
這類檔案只佔後設資料區域,沒有資料塊佔用:
隨著磁碟空間越來越大,劃分的塊的數量也越來越多,管理起來很不方便
劃分快租可以解決該問題
塊組:
每個塊組中有獨立的後設資料塊和資料塊
存放資料的時候,以塊組內的資料塊優先選擇,如果塊組內的資料塊不夠,可以通過儲存策略來請多個塊組協同儲存;
超級塊:
主要定義了有多少個塊組,以及每個塊組的邊界。
為了防止超級塊發生故障導致整個檔案系統崩潰,對超級塊進行冗餘備份
日誌塊:
對於資料的寫入操作做記錄的塊;
防止資料不一致;
資料不一致通常都是由不潔關機,不斷電導致;
一個完整的檔案系統:
超級塊,inode,inode bitmap,block bitmap,data block,journal block
想要查詢/var/log/messages檔案的內容,是怎樣的過程?
首先查詢/目錄inode編號,從後設資料區域中找到對應的inode,再讀取inode中的資料塊指標,找到/目錄的資料塊;
然後,在資料塊中查詢名稱為var的檔名,如果有,就定位其inode編號,再到後設資料區域中查詢對應編號的inode,再根據資料塊指標找到儲存var目錄內容的資料塊;
再然後,在該資料塊中查詢名稱為log的檔名,如果有,就定位其inode編號,再到後設資料區域中查詢對應編號的inode,再根據資料塊指標找到log目錄內容的資料塊;
之後,在該資料塊中查詢名稱為messages的檔名,如果有,就定位其inode編號,再到後設資料區域總查詢對應編號的inode,再根據資料塊指標找到messages檔案對應的資料塊,就可以讀取資料;
系統呼叫
Linux支援的檔案系統:
位於核心空間中的檔案系統驅動
1.核心一部分
2.核心模組
位於使用者空間中的檔案系統管理應用程式
管理命令
Linux自己的檔案系統:
ext ext2 ext3 ext4(最大分割槽50TB,可以做根分割槽,可以做啟動分割槽)
xfs(企業級64位檔案系統,最大分割槽500TB,可以做根和啟動分割槽)
reiserfs(良好的反刪除功能)
btrts(技術預覽版)
光碟檔案系統:iso9660
網路檔案系統:NFS、CIFS
叢集檔案系統:gfs2、ocfs2
核心級的分散式檔案系統:ceph
偽檔案系統:proc、sysfs、tmpfs、hugepagefs
Windows的檔案系統:vfat、ntfs
Unix的檔案系統:ufs、ffs、jfs、zfs
交換分割槽檔案系統:swap
使用者空間中的分散式檔案系統:mogilefs、moosefs、glusterfs
對於不同的發行版的Linux,都有其預設的檔案系統選擇:
RHEL、centos
5:ext3
6:ext4
7:xfs
檔案系統的管理工具:
寫一個指令碼,如果發現使用者hacker登入,則將登入時間和主機記錄於日誌/var/log/login.log中;
#!/bin/bash
#
if who | grep -q "\<hacker\>" ; then
for I in $(who | grep "\<hacker\>" | cut -d ' ' -f3-5 --output-delimiter=' '); do
echo -n $I >> /var/log/login.log
done
fi
管理檔案系統:
建立檔案系統:
mkfs
mkfs.ext2,mkfs.ext3,mkfs.ext4,mkfs.xfs,mkfs.btrfs,...
檔案系統檢測和修復工具
fsck
fsck.ext2,fsck.ext3,fsck.ext4,fsck.xfs, ...
檔案系統屬性檢視工具
dump2fs
檔案系統的屬性調整工具
tune2fs
建立檔案系統工具:
mkfs命令:
mkfs - build a Linux filesystem
mkfs [options] [-t type] [fs-options] device [size]
mkfs -t ext2 /dev/sdb1
注意:
1.不要使用磁碟裝置名稱和擴充套件分割槽裝置名稱作為mkfs命令的引數;
如果使用磁碟裝置作為mkfs的引數,所有的分割槽都將被刪除
如果使用擴充套件分割槽作為mkfs的引數,所有的邏輯分割槽都將被刪除
2.能夠作為mkfs命令引數的裝置,是主分割槽裝置和邏輯分割槽裝置;
如果只是計劃建立ext系列檔案系統的話,可以使用mke2fs命令:
mke2fs
mke2fs - create an ext2/ext3/ext4 filesystem
常用選擇:
-b block-size:在建立檔案系統時,調整塊大小;
-i bytes-per-inode:指明inode與位元組的比率,即:多少個位元組可以建一個inode,預設值為16384;
-I inode-size:直接指明inode的大小
-j:建立有日誌功能的檔案系統,就是ext3
-N number-of-inodes:直接指明要給此檔案系統建立的inode的數量;
-m reserved-blocks-percentage:指定為超級使用者root預留的磁碟空間的百分比;預設值是5
-t fs type:指定檔案系統型別,ext2 ext3 ext4,預設是ext2
-O [^]feature[,...]:關閉或開啟檔案系統的特性
-L volume-label:為檔案系統指定卷標;
如果只計劃修改ext系列檔案系統的卷標,可以使用e2label命令:
e2label:
e2label - Change the label on an ext2/ext3/ext4 filesystem
e2label device [ new-label ]
注意:如果不加捲標資訊,表示檢視指定裝置卷標;
如果新增了卷標資訊,表示修改指定裝置的卷標;
如果想要修改ext系列檔案系統的屬性,可以使用tune2fs命令
tune2fs:
tune2fs - adjust tunable filesystem parameters on ext2/ext3/ext4 filesystems
調整那些在ext2,3,4檔案系統上的可修改的引數;
常用選擇:
-j:將ext2檔案系統修改為ext3(不能從ext3修改為ext2)
-m reserved-blocks-percentage:修改為超級使用者root預留的磁碟空間的百分比;
-o [^]mount-options[,...] :修改檔案系統的預設掛載選擇;
-r reserved-blocks-count:修改為超級使用者預留的磁碟空間的塊的數量;
-L vol-ume-name:修改檔案系統的卷標
-O [^]feature[,...]:修改檔案系統的特性,將其關閉或啟用;
-l:顯示超級塊的內容 相當於dumpe2fs -h
檔案系統的檢測修改工具:
fsck
-t fstype:指定要檢測的檔案系統型別;
-a:無需互動,自動修復所有問題
-r:互動式修復問題
ext系列檔案系統專門的檢測修復工具:
e2fsck
-y:在互動過程的所有的問題,都是以“yes”回答;
-f:強制檢測修復;即使檔案系統處於clean狀態;
blkid:
blkid - command-line utility to locate/print block device attributes
blkid -L label:根據卷標查詢
blkid -U uuid:根據UUID查詢
findfs:
findfs - Find a filesystem by label or UUID
findfs LABEL=label
findfs UUID=uuid
建立swap檔案系統
前提:分割槽型別必須是swap型別
修改的方法是:在fdisk互動模式中,使用t命令將指定分割槽的型別修改為82即可:
mkswap:
mkswap - set up a Linux swap area
-L label:設定互動分割槽的卷標
-f:強制執行
使用檔案系統——掛載
FHS
根檔案系統之外的其他檔案系統如果想要被訪問;都必須通過某種方式關聯到根檔案系統上,具體做法就是把其他檔案系統裝載到根檔案系統中的某個目錄之中;這個過程為“掛載”,用於關聯其他檔案系統的那個目錄,稱為掛載點;
掛載點:mount point,也是其他檔案系統的訪問入口;例如:/boot
要求:
1.作為掛載點的目錄必須事先存在;
2.作為掛載點的目錄應該是沒有被使用或不能被其他程式使用的目錄;
3.作為掛載點的目錄一旦掛載檔案系統,其內原有的檔案將被隱藏;
完成掛在操作,使用mount命令:
mount
mount - mount a filesystem
mount [-fnrsvw] [-t vfstype] [-o options] device dir
常用選項:
-r, --read-only:以只讀的方式掛載目標檔案系統;光碟
-w, --read and write:以讀寫的方式掛載目標檔案系統;
-n, --no-mtab:預設情況下,裝置掛載或解除安裝的操作會同步更新到/etc/mtab中,如果在掛載時使用了-n選擇,則表示我們要禁用此特性,即便掛載成功,也不會更新到/etc/mtab中;
-t, --types:指明要掛載的裝置上建立的檔案系統型別;如果省略該選項,mount命令會通過blkid來判斷要掛載的目標裝置的檔案型別;
-L label:掛載檔案系統時,使用卷標代替裝置名稱
-U uuid:掛載檔案系統時,使用UUID代替裝置名稱
-a:mount -a:按照/etc/fstab檔案中填寫的裝置進行自動掛載;
-o option:
sync/nosync:同步/非同步操作
atime/noatime:檔案或目錄被讀取訪問時,是否更新訪問時間戳;
diratime/nodiratime:目錄被讀取訪問時,是否更新訪問時間戳;
ro/rw:是以只讀/讀寫的方式掛載檔案系統;
dev/nodev:在此檔案系統中是否允許建立裝置檔案;
exec/noexec:在此檔案系統中是否允許執行程式檔案;
auto/noauto:是否允許使用mount -a 方式掛載/etc/fstab中的檔案系統;
user/nouser:是否允許普通使用者掛載此檔案系統;
suid/nosuid:是否允許程式上的suid和sgid特殊許可權生效;
relatime/norelatime:是否參考inode訪問時間來修改其修改時間和改變時間
remount:不經解除安裝實現重新掛載,可以應用新的掛載選項;
acl:可以使檔案系統支援facl功能;
defaults:預設選項包括:rw, suid, dev, exec, auto, nouser, async, and relatime
defaults,ro,nosuid
loop:使用環回裝置;將映象檔案掛載到掛載點上
-B, --bind:將某個目錄繫結至另一個目錄;
mount --bind|-B 源目錄 目標目錄
解除安裝檔案系統:
umount: umount_point|device
掛載光碟:
1.保證光碟映象檔案放入虛擬機器光碟機
2.保證光碟機處於“已連線”狀態
3.建立光碟掛載點,
掛載U盤:
需要事先讓系統識別U盤裝置,然後根據裝置名進行掛載:/dev/sdc1
掛載交換分割槽:
swaponm,swapoff
swapon, swapoff - enable/disable devices and files for paging and swapping
-a:自動掛載儲存於/etc/fstab檔案中的互動分割槽裝置;
df
-h -T -P
free
-k -m -g
/etc/fstab檔案的格式:
共6個欄位,使用空白字元分隔:
1.要掛在的裝置名:
裝置檔案嗎
LABEL
UUID
偽檔案系統
2.掛載點:
swap裝置無需掛載點,指定swap即可
3.檔案系統型別:
4.掛載選項:defaults
5.轉儲頻路:
使用dump命令備份分割槽的頻路
0:表示不備份
1:每天備份一次
2:每隔一天備份一次
6.自檢次序:
0:不自檢
1:優先自檢,通常只設定在根檔案系統上
2:次級自檢
...
9:最低優先順序自檢
本文轉自誰等了誰 51CTO部落格,原文連結:http://blog.51cto.com/12486569/1922284
相關文章
- Linux系統管理之硬碟管理Linux硬碟
- linux之硬碟分割槽管理Linux硬碟
- linux邏輯卷方式管理硬碟資源Linux硬碟
- linux下玩轉磁碟管理與掛載硬碟Linux硬碟
- linux6-儲存結構與硬碟管理Linux硬碟
- HP_UX硬碟管理,UX硬碟
- 【SRE工程師】Linux常用硬碟管理相關命令介紹!工程師Linux硬碟
- 『學了就忘』Linux檔案系統管理 — 58、常用硬碟管理相關命令Linux硬碟
- 新手SuSE Linux 10.1上手(硬碟安裝等)(轉)Linux硬碟
- linux硬碟分割槽Linux硬碟
- Linux新增新硬碟Linux硬碟
- linux掛載硬碟Linux硬碟
- Redhat Linux 新增硬碟RedhatLinux硬碟
- linux 基礎(10)程式管理Linux
- linux硬碟分割槽表示Linux硬碟
- Linux 掛載硬碟方法Linux硬碟
- linux 新增硬碟分割槽Linux硬碟
- win10 禁止硬碟休眠方法 win10 如何關閉硬碟睡眠Win10硬碟
- OA系統之網路硬碟,高效管理大容量網路硬碟硬碟
- Redhat Linux 硬碟掛載方法RedhatLinux硬碟
- vmware增加linux硬碟空間Linux硬碟
- Linux與硬碟分割槽(轉)Linux硬碟
- 雙硬碟安裝linux(轉)硬碟Linux
- 從硬碟安裝LINUX(轉)硬碟Linux
- 硬碟空間的管理和分割槽硬碟
- win10工作管理員system程式佔用硬碟高怎麼解決Win10硬碟
- win10 需要什麼配置的硬碟_win10硬碟配置的要求Win10硬碟
- windows10如何更換硬碟_win10更換硬碟操作方法Windows硬碟Win10
- windows10硬碟怎麼檢測_win10硬碟檢測的方法Windows硬碟Win10
- suse 10 硬碟安裝(轉)硬碟
- Linux 下Oracle 10G RAC 管理LinuxOracle 10g
- ghost win10如何分割槽硬碟_ghost win10怎麼分割槽硬碟Win10硬碟
- linux系統 物理硬碟監控Linux硬碟
- centos linux檢視硬碟型號CentOSLinux硬碟
- Linux 下掛載硬碟的 方法Linux硬碟
- 用硬碟安裝Yoper linux(轉)硬碟Linux
- 透過硬碟安裝 Linux(轉)硬碟Linux
- 硬碟安裝 SuSE Linux 9.1(轉)硬碟Linux