建立分區相關指令:
指令格式:fdisk +裝置類型 最多隻能建立15個分區
1 2 | #fdisk -l ------//可列出所有磁盤的相關分區資訊 #fdisk -l /dev/sda----//檢視sda磁盤的相關分區資訊 |
圖1
1 2 3 4 5 6 | Linux: Sda[1-4] S(接口類型)da1:第一個主分區 Sda2:第二個主分區 Sda3:第三個主分區 Sda4:第四個主分區 |
Sda5:第一個邏輯分區,擴充分區一定是從5開始的,5是邏輯分區開始的标志。
指令格式:fdisk -l /dev/[sh]d[0-9]
圖2
1 2 3 4 5 | d delete a partition——————//删除一個分區 n add a new partition—————//建立一個分區 p print the partition table————//顯示目前分區資訊 w write table to disk and exit————//儲存退出 q quit without saving changes————//不儲存退出 |
System ID————說明這是一個什麼樣的分區類型,與作業系統相關連。
打算把分區——格式化成什麼樣的檔案系統,就一定要讓它的分區ID号跟檔案系統類型相比對。
l list known partition types——各分區類型多對應的system ID————也就是檔案系統類型。
83 ———— Linux
82 ———— Linux swap / So
8e ———— Linux LVM 邏輯卷
85 ———— Linux extended
fd ———— Linux raid auto軟RAID Software Raid
1 2 | t change a partition's system id//修改某指定分區的system ID a toggle a bootable flag//設定可啟動标記(設定此分區可以啟動作業系統的分 |
區)——————一般很少用到,了解即可。
圖3
确認無誤儲存退出
圖4
再建立兩個6G的分區:
圖5
如圖所示:主分區編号隻有一個了,要再建立任意兩個分區就隻能,先建立擴充分區,在擴充分區裡面建立邏輯分區。
是以接下來一定是先建立擴充分區
5一定是4下的5,所有的邏輯分區一定是在擴充分區之下建立的,這點很重要哦!這裡的開始以及結束柱面可使用預設的,一定要把剩下的空間一并給擴充分區,因為,如果不給擴充分區的話就永遠也用不上了。這點對新手尤為重要哦,呵呵!
圖6
圖7
如果中間寫錯了,想删除的話可按住ctrl鍵,再按tab即可輕松删除出錯的指令了!
擴充分區是不能直接使用的,是以,必須要再new
一塊硬碟隻能有一個擴充分區哦!這點請大家一定要記得哦!
圖8
再新增6G邏輯分區
圖9
以上這兩個分區整個都是在擴充分區内部建立的哦!看清楚了嗎?
是以說,邏輯分區一定是在擴充分區内部建立的!
如果某個分區不想要了,可以使用dl來删除,在本案例中,可以直接删除4号分區嗎?
圖10
貌似,5、6号分區也都随着擴充分區的删除消失了!
是以,此操作一定要謹慎哦!
此時唯一的解救辦法就是q-------不儲存退出就可以了哦,呵呵~
因為我們的核心還沒有做真正的分區格式化,也就是說在你沒w之前的所有操作都是視為無效的哦!!!
是以,有時候一念之間就是這樣的啦!!!!!
圖11
分區建立好了以後就可以使用fdisk -l 來檢視系統中所有的分區資訊了
圖12
fdisk能識别出來這麼多分區,核心能識别嗎?因為與硬體打交道的是核心啊 !!!!
如果核心識别不了的話說明是沒有這個硬體裝置的哦!
檢視核心識别的分區資訊:
1 | #cat /proc/partitons |
圖13
軟體能識别,核心竟然不能識别啊?該怎麼辦呢?
任何程式修改硬體必須要通過核心,必須要同步給正在運作的核心,讓核心識别才行啊!問題是該怎樣同步呢?
注:RHEL5.0和RHEL6.0同步的相關指令也是不一樣的。
檢視試驗測試機版本相關資訊:
1 2 3 4 | #cat /etc/issue #lsb_release -a #cat /proc/version #uname -a |
圖13-1
RHEL5 讓 核心重新讀取硬碟分區表:
partprobe [Device]——重新探測
可指派探測某個指定的裝置,不指定的話預設是探測所有的
圖14
讀取失敗,重新開機之前是無效的。
沒有被讀取到
RHEl6使用另外一個指令
RHEL6讓核心重新讀取硬碟分區表:
1 2 3 4 5 6 | partx -a [partition] device #man partx -a add specified partitions or read disk and add all partitions.讀取所有的 -l list partitions. Note that the all numbers are in 512-byte sectors. |
1 | #cat /proc/partitions 檢視核心識别分區表情況 |
---隻有此指令顯示的有各個分區資訊,核心才會分區格式化,否則都是無效分區哦!千萬記得哦!!!
圖18
手動一個一個添加似乎能被加上,但是仍然會報錯!不知道是不是核心方面的問題。
OK,核心都識别了!
圖19
OK,分區都已經建立好了,那麼,如何實作,往分區裡面存放檔案,如何使用這個分區呢?接下來我們還需要進行哪些操作呢?
格式化分區,用于建立檔案系統
沒有檔案系統就沒有辦法在裡面建立檔案呢!為什麼呢?因為它是裸裝置啊!呵呵1
Linux 建立分區指令:
兩步實作:指定分區類型、指定分區對象
注:擴充分區是不能格式化的,一定記得哦!
将/dev/sda3格式化分區類型為ext4
圖20
顯示/dev/sda3分區的相關屬性資訊
圖21
UUID———表示全局唯一号,是一列随機字元串将來硬碟數量很多的情況下,可以使用UUID來進行管理硬碟分區,是以每一個分區都給建立了一個全局唯一辨別符
blkid:顯示裝置的UUID以及檔案系統類型
注:擴充分區不能格式化
1 2 3 4 5 6 | #mkfs -t ext4 /dev/sda3=mke2fa -t ext4 /dev/sda3 #mkfs -t ext3=mkfs.ext3=mk2efs -j=mke2fs -t ext3 #mkfs -t ext4=mkfs.ext4 #mkfs -t ext2=mkfs.ext2=mke2fs #mke2fs -t {ext2|ext3|ext4} #blid /dev/sda3 blkid device顯示裝置的UUID及檔案系統類型。 |
Uuid用來辨別全局唯一ID号,是一連串随機數字,一台超級計算機上有成千上萬個挂載分區,怎樣去識别這上萬個分區呢?使用sda、sdb很可能會沖突的。
是以每一個分區都建立了一個全局唯一随機辨別ID。重複的可能性極小,類似哈雷彗星撞地球,呵呵。硬碟無論放到哪個主機上,重複的可能性幾乎不存在。
#man mkfs
-t fstype
#mke2fs -t ext4 /dev/sda3
mke2fs - create an ext2/ext3/ext4 filesystem
mke2fs -b {1024位元組、2048位元組、4096位元組預設}
圖22
配置檔案:vim /etc/mke2fs.conf用于設定預設特性及各檔案系統的特有預設特性
1 | #mke2fs -t ext4 -b 2048 /dev/sda3 |
——————b指定塊大小,預設為1kb,2kb.3kb
塊大小指的是什麼呢?
塊大小取決于CPU對記憶體葉大小的支援,一般來說,X86預設頁框是4K;預設是4096
檢視磁盤分區相關屬性資訊
1 2 3 | #tune2fs - l devcie |grep “Block size” #tune2fs -l /dev/sda3 Block size: 4096 # tune2fs -l /dev/sda3 | grep "Block size" |
圖23
注:a)一個block隻能屬于一個檔案
b)塊太大的話會導緻磁盤空間的浪費
c)塊大小的劃分取決于将來要存儲的檔案
d)要更改塊大小隻能格式化磁盤分區
-L——〉 new-volume-label設定卷标
Set the volume label for the filesystem to new-vol-
ume-label. The maximum length of the volume label
is 16 bytes.
1 2 | #mke2fs -t ext3 -b 1024 -L mytest1/dev/sda3 注:塊越小格式化的時間越長 |
要顯示塊大小
1 | #Tune2fs -l device | grep “Block size” |
圖24
-L 指定卷标,設定卷标
使用卷标或者使用UUID是我們避免交叉引用的好方法之一!
卷标有可能也會重複,幹脆使用UUID吧!
1 | #mke2fs -b 1024 -L mytest1 /dev/sda3 |
注:塊越小所格式化的時間就越長!
圖25
1 | #blkid /dev/sda3 還可以顯示LABEL資訊 |
圖26
一塊硬碟被填滿了的話會發生什麼情況?
# tune2fs -l /dev/sda3 | grep "Reserved" 檢視磁盤預設預留白間
圖27
1 | # echo $[577085/ 11541700] |
[[email protected] ~]# bc
577085/ 11541700
scale=2設定精度
577085/ 11541700*/
.05=5%保留的是整個磁盤空間的5%。 200G預留了5%就是10G
[ -m reserved-blocks-percentage ]預留給管理使用的塊所占據總體塊的比例。
1 2 | # mke2fs -t ext4 -b 2048 -m 3 -L mytest1 /dev/sda3 # tune2fs -l /dev/sda3 |grep "Reserverd" |
圖28
圖29
圖30
随着塊大小的改變,預留白間較之前有較大的變化。
mke2fs和tune2fs差別相當于useradd 和usermod,慢慢體會下是不是這樣的?
修改分區相關屬性
重新設定卷标:-L
1 2 3 | #blkid /dev/sda3 #tune2fs -L test2 /dev/sda3 #blkid /dev/sda3 |
圖31
調整塊大小:-m
1 2 | #tune2fs -m 5 /dev/sda3 #tune2fs -l /dev/sda3 |grep “Reserved” |
圖32
1 2 | #tune2fs -m1 /dev/sda3 #tune2fs -l /dev/sda3 |grep “Reserved” |
圖33
1 2 3 4 5 | -o:設定預設挂載選項 -O:設定檔案系統預設特性 -r調整預留給管理使用的塊個數 -E設定檔案系統的擴充屬性 -l顯示檔案系統超級塊資訊 |
e2label 顯示設定卷标
1 2 3 | #e2label /dev/sda3 #e2label /dev/sda3 test3 #e2label /devsda3 |
下篇
挂載
概念:挂載其實就是關聯關系的過程。
fileSystem:一個軟體,在核心中實作的
格式:mount -t filesystem options device mount-point
mount選項:
1 2 3 4 5 6 7 8 9 10 | 1)-o:用于指定挂載選項 2)ro:隻讀挂載 3)-n挂載檔案系統時不更新/etc/mtab檔案 4)rw:讀寫,預設即為讀寫 5)noatime:關閉更新通路時間的功能 6)auto:是否能由“mout -a”挂載 7)-r相當于”-o ro”隻讀挂載 8)defaults:相當于rw,suid,dev,exec,nouser,auto,async,and realatime 9)sync同步寫入,性能差,CPU到記憶體10NS,CPU到硬碟100NS 10)async異步寫入,大部分使用的是異步,性能好 |
sync在記憶體中完成儲存,檔案被編輯先被讀入記憶體,檔案編輯都是在記憶體中操作的。
mount [-t filetype]系統會調用blkid自動識别檔案類型,此項可省略 挂載裝置 挂載點
1)建立空白目錄
1 2 3 4 5 6 | #mkdir /test_m1 #cp /etc/inittab /test_m1 #cp /etc/fstab /test_m1 #cp /etc/rc.d/rc.sysinit /test_m1 #cp /etc/rc.d/init.d/functions /test_m1 #ls /test_m1 |
2)挂載,建立關聯關系
1 2 | # mount -t ext4 /dev/sda3 /test_m1/ # ls /test_m1/ |
原來的檔案不見了,思考下為什呢?
3)反挂載,也就是解除安裝了
解除安裝的時候隻需要指定一項目即可,要麼是挂載點、要麼是分區名稱
4)使用卷标挂載
1 2 | # e2label /dev/sda3 # mount LABEL="test2" /test_m1/ |
6使用卷标解除安裝 umount /test_m1/
LABEL=”卷标”
7)使用UUID挂載
UUID=“UUID”
1 2 | # blkid /dev/sda3 # mount UUID="a54233f0-51c0-4f30-9a0f-eea4c0999f49" /test_m1/ |
1 | #mount ——————>顯示目前系統挂載的所有裝置 |
/etc/fstab——————〉系統開機會自動挂載的檔案系統
注:fdisk - l RHEL5上面不顯示邏輯卷
fdisk - l RHEL 6上面是顯示所有的磁盤分區的
fdisk -l /dev/[hs]d[a-z]
1 2 | mount://将某檔案系統關聯至根檔案系統上來 mount://顯示所有挂在的裝置 |
1 2 | # cat /etc/mtab追蹤目前系統上所有已挂載檔案系統的檔案,随時會更新。 # umount /dev/sda3 |
1 | # cat /etc/mtab |
1 2 | #//fuser用于顯示正在通路某個檔案的程序 # fuser /media/ -km強制終止正在通路此挂載點的程序,謹慎使用哦! |
定義核心中的磁盤清寫政策,由核心自己維護。
1 2 3 4 5 6 7 8 9 10 | #remount:重新挂載 #mount #mount -o remount,ro /dev/sda3隻要此前挂在過就無需重新指定挂載點 loop:本地回環裝置,其實不是個裝置,是個檔案 mount -o remount,other_options device mount -o loop,other_options device mount point用于挂載回環裝置 -n:挂載檔案系統時不更新cat /etc/mtab檔案 -r:相當于“-o,ro”隻讀挂載 fuser [mount_point]//檢視正在通路挂載點的程序 fuser -km[mount_point]//強行殺死正在通路此挂載點的程序 |
1 | #/etc/fstab//使用空白字元分割的六個字段 |
1 2 3 4 5 6 7 8 9 10 11 | 1)挂載的裝置: 裝置檔案、卷标、UUID(伺服器上儲存設備較多時可使用) 2)挂載點(一定要是空目錄) 3)檔案系統類型:ext2、ext3、ext4。。。。。 4)挂載選項:defaults表示使用預設選項,多個選項之間逗号分隔; 轉儲頻率:也備份頻率(就是多長時間做一次備份) 0:從不備份,預設此選項即可 1:每日備份 2、每隔一天備份 5)自檢次序-做檔案系統檢測(檔案系統不一緻的情況下) 6)定義自檢次序: |
ext3日志檔案系統
0:不檢測
1、:第一個檢測:一般隻有根檔案系統被第一個檢測,一般來講隻能是根為1
1 2 3 4 | 2-9逐個檢測 #vim + //直接打開檔案并定位至最後一行 #vim + /etc/fstab #按小寫字母o,在目前光标所在行下行建立一行并轉換為輸入模式 |
1 2 | a)上面的操作隻能保證下次開機啟動時自動挂載哦! b)下面的操作是立即挂載到目前相關聯的目錄上,是随時都可以使用的啦! |
1 | #mount -a //挂載/etc/fstab所有支援auto挂載選擇的檔案系統 |
Linux 的交換分區:SWAP
1)建立交換分區
1 2 3 | mkfs -t [fstype] partition 1、檔案系統必須被核心支援才能使用,即核心中有相應的核心子產品或者已經編譯進核心; 2、要有相應的檔案系統建立工具,mkfs.fstype,于核心子產品一一對應 |
啟用交換分區
1 2 3 | #mkswap device//啟用交換分區 #swapon device //啟用指定交換分區 #swapoff -a //啟用所有交換分區 |
禁用交換分區
1 2 3 | #swapoff device #swapopp -a #開機啟動交換分區,可寫入到/etc/fstab |
挂載時注意以下兩點即可
1 2 | 1)挂載點填寫swap 2)檔案系統類型填寫swap |
将分區資訊寫入核心
建立交換分區
設定開機自動挂載
完!