天天看點

如何在Linux上建立檔案系統

    談到如何建立檔案系統,在這裡就不得不提一下什麼是檔案系統,在百度上搜尋得到的定義是這樣的:作業系統中負責管理和存儲檔案資訊的軟體機構稱為檔案管理系統,簡稱檔案系統,簡單的看這個概念可能感覺還是有點茫茫然,其實簡單的說,就是定義磁盤存取資料的一種邏輯組織,我們都知道磁盤是一種存儲資料的硬體,首先但這個硬體的工作當然不是無序的,他首先得遵循一定的規則,而檔案系統就是給磁盤存取檔案系統定義規則的。

        是以,檔案系統是建立在磁盤上的,如此一來,我們就應該聊聊磁盤的結構了,磁盤大緻可分為,旋轉馬達,磁盤片,固定連杆及磁頭,磁頭劃過盤片的一周稱作為磁道(track),而在每個磁道按512Byte劃分若幹個相同的等分即是扇區(sector)。為了我提高磁盤的工作效率,我們通常會在多個盤面上同時存取,是以在多個盤片面上都分别有磁頭,連杆統一移動磁頭在多個盤面上停留在不同的盤面相同的磁道上,多個盤面的磁道組成的至上而下平面乃稱之為柱面(sylinder),相關概念原理可以參照下面一張圖檔

        為了更好的更安全的管理磁盤資料,我們通常會對磁盤按柱面進行分區,我們知道越靠盤片外的柱面磁頭劃過的時間消耗便越長,讀取的速度就會越低,是以在我們windows機器上的靠後的分區會感覺到相比C槽慢一些,在這裡還得說明一點,在磁盤上的0磁道0扇區的512Byte是儲存MBR(master boot record)的,在mbr裡446Byte是存放bootloader的,64Byte存放分區表資訊,每16Byte辨別一個分區,是以理論上我們的磁盤分區最多隻能四個,而為了适應多場景,業務的需求必須多使用分區時,通常在第4塊分區中引入擴充分區,在擴充分區中來添加更多的分區突破這個限制,剩下的2Byte用來辨別magic number。

        建立檔案系統并且能夠使用可分為三步:

            1.首先給硬碟分區

                在分區前先要介紹下相關硬碟按接口可以分成幾個類型:

                    并口:個人pc一般是IDE的為主,速率大緻是133M/s

                               企業級SCSI,速率是640M/s

                    序列槽: SATA:6Gbps

                                SAS:6Gbps

                                USB:480MB/s

                在centos5,除了IDE接口的硬碟上裝置顯示是/dev/hd*以外,SCSI,SATA,SAS,USB都                   是/dev/sd*,但是在centos6以上的版本中,都是/dev/sd*。 我們使用的分區管理工具                 主要有fdisk, parted, sfdisk,主流還是使用fdisk,但是fdisk最多隻能分區15個,                 具體指令參數如下:

                    fdisk device

                            p: print, 顯示已有分區;

                            n: new, 建立一個新的分區

                            d: delete, 删除一個已經存在的分區

                            w: write, 建立好的分區寫入磁盤并退出

                            q: quit, 放棄建立好的分區并直接退出

                            m: 擷取幫助

                            l: 清單所分區id

                            t: 調整分區id

                 eg:在我的虛拟機上建立分區

                        1.首先檢視一下我的機器上的分區情況,使用fdisk -l

                可以看的出來,我隻使用了3個分區,還有一個分區可使用的,但是總容量卻不夠使用了,是以我得先在虛拟機上加一塊硬碟 ,看箭頭訓示的另外一個多出來的磁盤如下圖

                接下來我們來進行分區

            這個是我整個建立一個500M的,類型為Linux的主分區,大緻過程就是這樣,然後檢視核心是否識别到我新建立的分區,可以cat /proc/partitions,一般分區完成且儲存退出之後,要執行partx -a /dev/sdb同步到核心當中去

            2.初始化檔案系統

                   首先還是先了解檔案系統都有哪些

                    linux的檔案系統:ext2,ext3,ext4,vfat,xfs,btrfs,reiserfs,jfs,swap(交換分區)

                    windows:fat32,ntfs

                    網絡檔案系統:NFS,CIFS(windows網路上的芳鄰)

                    叢集檔案系統:GFS2, OCFS2

                    分布式檔案系統:ceph,moosefs, mogilefs, GlusterFS, Lustre

                我們在建立檔案系統的時候必須滿足兩個條件,1.在核心子產品中得有我們需要的類型檔案系統,否則還得安裝子產品,2,在使用者空間得有建立檔案系統支援的工具,如:mkfs.ext4,mkfs.xfs,mkfs.vfat等等。我們來試着用之前已經建好的分區來初始化檔案系統

            至此檔案系統初始化完成了,注意mkfs.ext4這個“.”也可以換成 “-t” ,如mkfs -t ext4,在老的版本中的centos,建立檔案系統會使用這個指令mke2fs,它是ext系列檔案系統的專用工具,具體使用如下:

        mke2fs:ext系列檔案系統專用管理工具

            -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:關閉指定特性

        我們也來看看使用mke2fs建立檔案系統的效果

        1.首先還是建立分區/dev/sdb2

        2.建立完成後使用mke2fs建立檔案系統

        在上圖中,我建立了個卷标為mydata且不帶日志的檔案系統,如果我想更新為帶日志的檔案系統ext3,這裡也要介紹下更改檔案系統相關屬性的指令tune2fs

        tune2fs:重新設定ext系列檔案系統可調整參數的值

            -l:檢視指定檔案系統超級塊資訊;super block

            -L 'LABEL':修改卷标

            -m #:修預留給管理者的空間百分比

            -j: 将ext2更新為ext3

            -O: 檔案系統屬性啟用或禁用

            -o: 調整檔案系統的預設挂載選項

            -U UUID: 修改UUID号;

        将檔案系統修改為ext3,參照上面的指令參數直接敲入tune2fs -j /dev/sdb2,如圖

            3.挂載檔案系統

繼續閱讀