如何在Linux上創建文件系統

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

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

        blob.png

        為了更好的更安全的管理磁盤數據,我們通常會對磁盤按柱面進行分區,我們知道越靠盤片外的柱面磁頭劃過的時間消耗便越長,讀取的速度就會越低,因此在我們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

                        blob.png

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

                        blob.png

                接下來我們來進行分區

            blob.png            blob.png

            這個是我整個創建一個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等等。我們來試著用之前已經建好的分區來初始化文件系統

            blob.png

           blob.png

            至此文件系統初始化完成了,注意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創建文件系統

        blob.png   

        在上圖中,我創建了個卷標為mydata且不帶日志的文件系統,如果我想升級為帶日志的文件系統ext3,這里也要介紹下更改文件系統相關屬性的命令tune2fs

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

            -l:查看指定文件系統超級塊信息;super block

            -L 'LABEL':修改卷標

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

            -j: 將ext2升級為ext3

            -O: 文件系統屬性啟用或禁用

            -o: 調整文件系統的默認掛載選項

            -U UUID: 修改UUID號;

        將文件系統修改為ext3,參照上面的命令參數直接敲入tune2fs -j /dev/sdb2,如圖

      blob.png

            3.掛載文件系統

注:以上內容純代表個人的理解,歡迎指正,謝謝

原創文章,作者:東里西里,如若轉載,請注明出處:http://www.www58058.com/11174

(0)
東里西里東里西里
上一篇 2016-01-18 16:33
下一篇 2016-01-18 23:04

相關推薦

  • 2016-10-17作業

    1 生產環境發現一臺服務器系統時間產生偏差,造成服務異常,請幫忙校正。 date命令查看系統時間,clock或者hwclock命令查看硬件時間, 將系統時間同步到硬件時間的方法hwclock -s   2 生產有一個數據同步腳本需要執行很長時間,怎樣做到無人值守,在管理工具退出的情況下,腳本依然能正常運行。在生產環境的中創建SCREEN會話,會話的…

    Linux干貨 2016-10-18
  • 封裝和結構及set

    封裝|set

    Linux干貨 2017-10-09
  • 分布式系統的事務處理

    當我們在生產線上用一臺服務器來提供數據服務的時候,我會遇到如下的兩個問題: 1)一臺服務器的性能不足以提供足夠的能力服務于所有的網絡請求。 2)我們總是害怕我們的這臺服務器停機,造成服務不可用或是數據丟失。 于是我們不得不對我們的服務器進行擴展,加入更多的機器來分擔性能上的問題,以及來解決單點故障問題。 通常,我們會通過兩種手段來擴展我們的數據服務: 1)數…

    Linux干貨 2016-08-15
  • Linux學習

    計算機的組成及功能 計算機硬件由運算器、控制器、存儲器、輸入設備和輸出設備五大部件組成。運算器:進行算術和邏輯運算??刂破鳎贺撠焻f調和指揮整個計算機的工作存儲器:存儲程序、數據和文檔。輸入設備:用于將各種數據輸入計算機中。輸出設備:用于將計算機中的數據輸出到相應設備上。   計算機軟件總體分為系統軟件和應用軟件兩大類:系統軟件是各類操作系統,如wi…

    Linux干貨 2017-12-03
  • N25第一周學習總結

    第一周學習總結 按照課程要求,本周完成2天的課時,總計8課時。 因為是剛開課,馬哥為我們介紹了上課環境,課程體系,還有一些計算機基礎理論。內容主要是:          計算機的工作機制        &nbs…

    Linux干貨 2016-12-04
  • rpm包管理與yum簡要用法

    linux程序包管理 程序包:源代碼 –> 目標二進制格式(二進制程序、庫文件、配置文件、幫助文件)–> 組織成一個或有限的幾個包文件 程序包管理器:        debian –> dpkg   以“.deb”結尾 &nb…

    Linux干貨 2016-08-22
欧美性久久久久