如何在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
下一篇 2016-01-18

相關推薦

  • Homework Week-9 bash腳本之順序、選擇、循環

    1、寫一個腳本,判斷當前系統上所有用戶的shell是否為可登錄shell(即用戶的shell不是/sbin/nologin);分別這兩類用戶的個數;通過字符串比較來實現; #!/bin/bash #Elephant echo "nologin users:" user1=$(cat /etc/passwd&n…

    Linux干貨 2016-10-17
  • httpd

      httpd http服務器程序:   httpd (apache) nginx lighttpd httpd的特性:   高度模塊化: core + modules DSO:dynamic shared object(模塊的動態加載) MPM:Multipath processing Modules (多路處理模塊) &nb…

    Linux干貨 2017-06-04
  • N26-第六周博客作業

    請詳細總結vim編輯器的使用并完成以下練習題 VIM有三種模式,分別為標準模式、輸入模式、末行模式 模式切換:          標準模式——輸入模式:i          標準模式——末行模式:: …

    Linux干貨 2017-07-08
  • 文件權限的設置和文件的特殊權限及其命令使用

    1. linux的系統管理員很重要的任務就是管理自己服務器的文件,對于權限設置等級森嚴的linux文件系統,文件系統的訪問權限管理自然也是linux管理員必不可少的一項技能。 在linux中文件的基本權限中:被分為三大項:文件擁有者,文件擁有組,其他人。 每一項中,用三位八進制的數字來代表文件是否可讀,是否可寫,是否可執行。并根據用戶不同可以設置不同的uma…

    Linux干貨 2016-08-05
  • 特殊權限

    特殊權限 文件特殊權限 一、SUID(4) SUID:當s這個標志出現在文件所有者的x權限上時,就被稱作SUID。 SUID的功能和限制:1、僅僅對二進制程序有效; 2、執行者對程序需要X的執行權限; 3、本權限僅僅在執行該程序的過程中有效; 4、執行者將具有該程序所有者的權限。 5、SUID僅僅可以用在二進制程序上,…

    Linux干貨 2016-08-05
  • 文本處理工具sed的使用以及Vim的使用技巧詳解

    一、什么是sed     sed的英文全稱是Stream EDitor,叫行編輯器。     sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容…

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