上午是培訓033的結課考試,雖說是033,但是在馬哥的指導下,遠遠超越了033的難度。。。下午,學習了掛載,留了個小作業,寫一個指令碼來實現自動分區。不多說了,切入正題。
檔案系統的分類:
ext2,ext3,ext4,ntfs,xfs,jfs,reiserfs,iso,swap,vfat等等。。
這麼多檔案系統,出現了一個問題,在程式設計時要考慮到I\O識別檔案系統,那麼光寫不同檔案系統的I\O識別程式,就是一個很大的工作。
所以,出現了一個中介層虛擬檔案系統:VFS 處於檔案系統與使用者之間,協調使用者和檔案系統,提供了同一的調用介面
硬碟的分類(按介面):
1.ATA(IDE) :並行口 需要適配器轉換訊號 133M/s 並行兩根線容易互相干擾,到一定設計上限就不行
2.SATA:串列口 300M/S 600M/S 4Gbps 一根線不受幹擾,所以塊
3.SCSI:並行 samll computer system interface 輸送量大,壽命長,轉速高,企業級應用 適配器本身帶控制器,類似CPU,可以完全實現控制I/O,極大的降低了CPU的負擔 還可以外部儲存
4.SAS: 串列SCSI:用串列類比SCSI
5.USB還有其他
那麼有了檔案系統和硬碟的概念,那麼我們就可以進入分區的話題:
一個硬碟最多可以有4個主要磁碟分割,為什麼呢?這是因為技術原因,每個硬碟的第一個塊512位元組是它的引導塊:bootloader,而其中446位元組用於存放一個引導程式來引導作業系統,剩餘的64位元組用於儲存分區資訊,也就是我們熟悉的硬碟分區表MBR,而每一個分區的分區資訊為16位元組,所以64/16=4個分區,被成為主要磁碟分割或者擴充分區。
linux的分區分為四大步:
首先是fdisk:
假定硬碟為/dev/sda
在命令列輸入:fdisk /dev/sda
The number of cylinders for this disk is set to 15665.There is nothing wrong with that, but this is larger than 1024,and could in certain setups cause problems with:1) software that runs at boot time (e.g., old versions of LILO)2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK)Command (m for help): //在這裡按m
幾個關係案例屬性
m 協助
d 用於刪除一個分區
n 建立一個分區 +10G 分10G,由於柱面大小的原因,不會精確的劃分
p 列印分區 , 顯示現有分區類型
t 調整分區類型
w 寫到磁碟上去
q 反悔,退出不儲存
a 修改使用中的磁碟分割
我們輸入n 會提示你選擇起始柱面和結束柱面,選擇完後,選擇擴充分區,按w儲存退出。
這樣,第一步就完成了。
Device Boot Start End Blocks Id System/dev/sda1 * 1 13 104391 83 Linux/dev/sda2 14 5235 41945715 8e Linux LVM/dev/sda3 5236 5300 522112+ 82 Linux swap / Solaris/dev/sda4 5301 15665 83256862+ 5 Extended/dev/sda5 5301 15665 83256831 83 Linux
第二步:重新載入分區表資訊
命令:
[root@server45 ~]# partprobe /dev/sda
第三步:格式化分區
mkfs -t ext2 /dev/sda5
或者
mkfs.ext2 /dev/sda5
最後一步:掛載
mkdir /mnt/sda5mount /dev/sda5 /mnt/sda5
補充:如果想實現開機自動掛載,那麼編輯/det/fstab檔案
/dev/vol0/root / ext3 defaults 1 1/dev/vol0/home /home ext3 defaults 1 2LABEL=/boot /boot ext3 defaults 1 2tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0LABEL=SWAP-sda3 swap swap defaults 0 0
這裡面有6個關鍵字段
1.要掛載的裝置: /dev/sda5,LABEL=NYDATA,UUID=""
2.掛載點:
3.檔案系統類型:
4.掛載選項:如果有多個選項,選項間用逗號隔開,預設defaults 如果要多一個選項用,defaults,acl
5.轉儲頻率:0 不做任何備份,1 表示每天備份,2 表示隔天備份不常用
6.檔案系統的自檢次序:0-9 0不自檢,1開機直接自檢(只有root),2次之(home),3。。
自動格式化指令碼:
#!/bin/bashfdisk /dev/sda << EndnewEnd
這個指令碼時假設硬碟上已有3個主要磁碟分割,把最後一個分區格式化為擴充分區。
那麼我們把這個指令碼擴充一下,假設硬碟為3個主要磁碟分割,一個擴充分區,指令碼的作用是:
1.執行一次自動建立一個10GB的邏輯分區,並且重讀MBR.
2.格式化建立立的邏輯新區
3.在/mint目錄下建立以這個新分區名的檔案夾,自動掛載這個分區
#!bin/bashfdisk /dev/sda << Endn+10GwEndpartprobe /dev/sdaF=`fdisk -l /dev/sda | tail -1 | cut -d/ -f3 | awk '{print $1}'`mkfs /dev/$Fmkdir /mnt/$Fmnt /dev/$F /mnt/$F