linux下使用fdisk/mke2fs/mount新增新硬碟分割槽

myownstars發表於2013-01-28

linux新增硬碟,需要先分割槽然後再對分割槽格式化,最後將分割槽mount後才能使用

 

磁碟分割槽

一個硬碟最多有4個主分割槽,多出的需要放在擴充套件分割槽,這些資訊儲存在磁碟的MBR(master boot recorder)即主引導區;

MBR位於硬碟的0軌,第一個要讀取的硬碟區域,當MBR損壞時,整個硬碟就報銷了;

硬碟分割槽格式化fdisk後,每個分割槽就是一個檔案系統,而預設情況下每個檔案系統開始的位置就是super block即超級塊,儲存該分割槽的metadata,包括blockinode總量,塊與inode單個大小,檔案系統載入時間以及有效位;

當超級塊損壞時,該分割槽就報銷了;

可透過dump2fs讀取ext2/3的超級塊及塊組資訊,需要root許可權;

-h:只檢查超級塊

-b:檢視壞塊

檢視linux支援的檔案系統,可呼叫 ls  -l /lib/modules/`uname r`/kernel/fs

$  ls -l /lib/modules/`uname -r`/kernel/fs

total 160

drwxr-xr-x  2 root root 4096 Dec 17  2007 autofs4

drwxr-xr-x  2 root root 4096 Dec 17  2007 cifs

drwxr-xr-x  2 root root 4096 Dec 17  2007 cramfs

drwxr-xr-x  2 root root 4096 Dec 17  2007 exportfs

drwxr-xr-x  2 root root 4096 Dec 17  2007 ext3

drwxr-xr-x  2 root root 4096 Dec 17  2007 fat

drwxr-xr-x  2 root root 4096 Dec 17  2007 freevxfs

drwxr-xr-x  2 root root 4096 Dec 17  2007 hfs

drwxr-xr-x  2 root root 4096 Dec 17  2007 hfsplus

drwxr-xr-x  2 root root 4096 Dec 17  2007 jbd

drwxr-xr-x  2 root root 4096 Dec 17  2007 jffs2

drwxr-xr-x  2 root root 4096 Dec 17  2007 lockd

drwxr-xr-x  2 root root 4096 Dec 17  2007 msdos

drwxr-xr-x  2 root root 4096 Dec 17  2007 nfs

drwxr-xr-x  2 root root 4096 Dec 17  2007 nfs_common

drwxr-xr-x  2 root root 4096 Dec 17  2007 nfsd

drwxr-xr-x  2 root root 4096 Dec 17  2007 nls

drwxr-xr-x  2 root root 4096 Dec 17  2007 smbfs

drwxr-xr-x  2 root root 4096 Dec 17  2007 udf

drwxr-xr-x  2 root root 4096 Dec 17  2007 vfat

若檢視已經啟用的檔案系統,則使用cat /proc/filesystems

$ cat /etc/filesystems

ext3

ext2

nodev proc

nodev devpts

iso9660

vfat

hfs

Linux採用VFS即虛擬檔案系統為所有的檔案系統提供統一的呼叫介面;

 

初始化檔案系統

磁碟格式化採用mke2fs命令,其有許多選項常見的如下:

-b:塊大小,包含1024/2048/4096位元組

-i:每個inode的位元組大小

 -j:建立ext3  journal

-n:模擬測試建立檔案的效果但不實際執行

-N:分配inode的數量,而inode數量在檔案系統建立後不可再更改

-S:初始化超級塊和組描述符,通常被當作在超級塊及其備份遭破壞後的最後一招,使用後應立即呼叫e2fsck檢測

 

載入

注:將分割槽載入到某目錄後,該目錄原有的子目錄會暫時被隱藏直至該分割槽被解除安裝為止;不同的檔案系統可能有著不同的選項,以下的部分僅適用於ext3

使用mount命令,其選項很多常用的如下:

-o:分割槽載入選項,包括rw(讀寫)/ro(只讀)noatime不更新訪問時間,可加速;noexec不允許執行二機制檔案;

-grpid:指定新建立檔案的預設組,如不設定則使用當前程式的fsgid

-sb=n:指定超級塊位置,預設為1;早先版本每8192塊就有一個冗餘備份,即第1/8193/16385..均為超級塊,當檔案系統超大時會造成浪費;自1.08版本其mke2fs增添-s選項,即稀疏超級塊sparse superblock

-data:指定檔案資料(metadata)的日誌模式:journal—資料寫入檔案系統前先寫日誌;ordered—預設,先寫資料後記日誌;writeback--

-a:載入/etc/fstab列出的所有檔案系統

-n:載入但不更新/etc/mtab,可在/etc為可讀時使用

-L/U: 載入具有指定的標籤名或UUID的檔案系統

 

修改磁碟引數

載入磁碟後可能根據實際需求修改部分引數,可使用以下命令

Mknod

用於建立字元或塊裝置並賦予裝置號;

Linux下所有的硬碟/軟盤/鍵盤等外部裝置都用檔案代表存放在/dev下,但核心無法識別諸如/dev/sda等檔名,實際上其採用主/次裝置號來區分不同的裝置;

核心中維護著一個device driver table,其中主裝置號代表該裝置型別,次裝置號代表該型別下的具體裝置,兩者都儲存於該裝置的i-node中,不可隨意修改其值;

mknod還可用於建立FIFO檔案

$ pwd

/dev

$ ll cpu* | head -5

crw-------   1 root root 203,  0 Oct  6 07:30 cpu0

crw-------   1 root root 203,  1 Oct  6 07:30 cpu1

crw-------   1 root root 203, 10 Oct  6 07:30 cpu10

crw-------   1 root root 203, 11 Oct  6 07:30 cpu11

crw-------   1 root root 203, 12 Oct  6 07:30 cpu12

$ ll md* | head -5

brw-rw----  1 root disk 9,  0 Oct  5 23:30 md0

brw-r-----  1 root disk 9,  1 Oct  5 23:30 md1

brw-r-----  1 root disk 9, 10 Oct  5 23:30 md10

brw-r-----  1 root disk 9, 11 Oct  5 23:30 md11

brw-r-----  1 root disk 9, 12 Oct  5 23:30 md12

 

Hdparm

僅限於IDESATA,對於SCSI則使用sdparm

設定硬碟引數,比如禁止write-back,啟用DMA

-d   get/set using_dma flag d1開啟DMA模式,所謂DMA即跳過CPU直接訪問記憶體

--direct  use O_DIRECT to bypass page cache for timings

-f   flush buffer cache for device on exit

-m   get/set multiple sector count-m16即一次IO中斷從磁碟讀入16個扇區

-P   set drive prefetch count

-t  檢視磁碟讀次數

-T 檢視cache讀次數

$ sudo hdparm -tT /dev/hda

/dev/hda:

 Timing buffer-cache reads:   128 MB in  1.34 seconds =95.52 MB/sec

 Timing buffered disk reads:  64 MB in 17.86 seconds = 3.58 MB/sec

$ sudo hdparm /dev/hda

/dev/hda:

 multcount    =  0 (off)

 I/O support  =  0 (default 16-bit)

 unmaskirq    =  0 (off)

 using_dma    =  0 (off)

 keepsettings =  0 (off)

 nowerr       =  0 (off)

 readonly     =  0 (off)

 readahead    =  8 (on)

 geometry     = 1870/255/63, sectors = 30043440, start = 0

multcount即一次I/O中斷讀取的sector數量,可透過-m調整,能有效降低CPU使用率及增加IO效能,-m16每次讀取16個扇區;

I/O support決定資料從PCI到控制器的傳輸預設,目前普遍支援32bit-c3啟用32bit傳輸

Unmaskirq啟用此功能執行linux在處理磁碟中斷時接受其它中斷,即等待磁碟返回請求資料時linux可以處理其它中斷相關任務

 

Tune2fs

檔案系統被建立後部分引數可透過tune2fs調整

-j:為檔案系統增添ext3 journal選項

-l:列舉超級塊內容

-L:設定磁碟標籤

-m:設定預留磁碟百分比

-u:設定可訪問預留資料塊的使用者,可賦予uid或使用者名稱

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15480802/viewspace-753426/,如需轉載,請註明出處,否則將追究法律責任。

相關文章