歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> Linux創建文件及掛載文件系統流程詳解

Linux創建文件及掛載文件系統流程詳解

日期:2017/2/27 14:11:47   编辑:更多Linux

  本文對新增硬盤,切割硬盤,創建硬盤分區,為硬盤分區創建文件系統,以及加載文件系統的流程做總結性論述;主要是為初學者弄清楚這一操作過程;本文涉及fdisk、mkfs、mount ... ... 等工具;對/etc/fstab 進行了解說;還有磁盤掃描工具fsck 等介紹;

  如果您想加載一個分區(文件系統),首先您得確認文件系統的類型,然後才能掛載使用,比如通過mount 加載,或者通過修改 /etc/fstab來開機自動加載;

  如果您想添加一個新的分區,或者增加一個新的硬盤,您要通過分區工具來添加分區,然後要創建分區的文件系統,然後才是掛載文件系統;比如通過mount 加載,或者通過修改 /etc/fstab來開機自動加載;

  本文總有一部份是您想要的;比如在新的分區上創建文件系統,如何掛載;如何卸載文件系統或者設備(比如cdrom )等;我建您最好通讀本文,然後根據自己的需要再做選擇性實踐;

  Linux的一個小問題涉及的很多方面的知識,有時一篇文檔是難以說清楚;我為了盡可能詳細解說每一個過程,所以把分區工具、創建文件系統工具、查看文件系統的工具分開來說,主要是讓初學者比較容易理解。希望您能理解本人的用心;傳說北南長的比較丑,但心的還是善良的 ... ...我是不會用一些垃圾文檔來害您 ... ... 哈哈 ... ... 言歸正傳,開文~~~~

  一、對存儲設備的分區;

  我們這裡所指的存儲設備主要是本地硬盤、移動硬盤(比如USB 和1394接口的硬盤);由於磁盤很大並且為了滿足我們各種需要,所以把硬盤分成若干個分區;比如我們可以用這個分區來安裝Linux系統,那個分區用來安裝Windows系統... ... ;這點小事大家都明白;

  至於如何在 Linux中進行硬盤分區操作,我們推薦您用 fdisk ,目前看來也是最好用的分區工具;其它工具比如parted 和cfdisk在某一方面有點優點,但這些優點可能為大家帶來一些方便 ,比如 parted中的數據備份功能,這個功能對老手來說可能是優點,但對新手來說,的確是有風險的;所以我們還是推薦您用 fdisk 分區工具;

  二、存儲設備進行格式化,即建立文件系統的過程;

  1、文件系統的一點介紹

  我們對存儲設備分區還是遠遠不夠的,我們還要對這些新增分區進行格式化;一個分區只有建立了某種文件系統後,這個分區才能使用;建立文件系統過程,就是用相應格式化工具格式化分區的過程,這個過程和我們在Windows中格式化某個分區為NTFS分區類似;沒有什麼高深的內容,只是所用的工具不一樣罷了;

  在Linux操作系統中,目前幾乎支持目前主流的文件系統,比如NTFS(只讀)、FAT(可讀可寫)、ext2、ext3、reiserfs、hfs (MAC 操作系統的文件系統)、swap 交換分區... ... 還有一些咱們不熟悉的操作系統的文件系統等;

  在Linux中,我們常用的文件系統無非是上面例出的這些;如果您新增了一個硬盤,可能想格式化成 Linux的文件系統,最佳選擇是 reiserfs 或ext3;目前ext2已被 ext3取代;我們不推薦用ext2文件系統,ext2的使用風險比較大;速度最快的文件系統,當屬reiserfs;reiserfs 還有很多優點,比如更安全;ext3是Redhat認為最好的文件系統,所以在Fedora 4.0在安裝時,特地為reiserfs 的選擇弄出點麻煩;

  相對來說reiserfs還是比ext3要優秀;如果想深入學習文件系統的,您可以到官方論壇找相應的資料,最好是實踐實踐;

  2、格式化工具介紹和使用;

  以fedora 4.0為例,我們常用的工具mkfs mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mkswap

  提示:如果您不能創建reiserfs 文件系統,也就是說沒有mkfs.reiserfs 或者mkreiserfs 命令,是您沒有安裝reiserfs-utils工具包,請參考:《讓Fedora 支持創建reiserfs 文件系統,以及創建reiserfs文件系統的一點說明》

  1)mkfs的使用;

  使用方法:

  [root@localhost beinan]# mkfs -t 文件系統 存儲設備

  注:

  這裡的文件系統是要指定的,比如 ext3 ;reiserfs ;ext2 ;fat32 ;msdos 等...

  設備比如是一個硬盤的分區,軟盤,光驅等.. ...
  在格式化分區之前,您得懂得如何查看硬盤分區情況,並有針對性的格式化;比如用 fdisk -l 來查看;

  比如我想格式化一個移動U盤中的一個分區;全景應該是:

  [root@localhost beinan]# fdisk -l

  Disk /dev/hda: 80.0 GB, 80026361856 bytes

  255 heads, 63 sectors/track, 9729 cylinders

  Units = cylinders of 16065 * 512 = 8225280 bytes

  Device Boot Start End Blocks Id System

  /dev/hda1 * 1 765 6144831 7 HPFS/NTFS

  /dev/hda2 766 2805 16386300 c W95 FAT32 (LBA)

  /dev/hda3 2806 9729 55617030 5 Extended

  /dev/hda5 2806 3825 8193118+ 83 Linux

  /dev/hda6 3826 5100 10241406 83 Linux

  /dev/hda7 5101 5198 787153+ 82 Linux swap / Solaris

  /dev/hda8 5199 6657 11719386 83 Linux

  /dev/hda9 6658 7751 8787523+ 83 Linux

  /dev/hda10 7752 9729 15888253+ 83 Linux

  Disk /dev/sda: 1035 MB, 1035730944 bytes

  256 heads, 63 sectors/track, 125 cylinders

  Units = cylinders of 16128 * 512 = 8257536 bytes

  Device Boot Start End Blocks Id System

  /dev/sda1 1 25 201568+ 83 Linux

  /dev/sda2 26 125 806400 5 Extended

  /dev/sda5 26 50 201568+ 83 Linux

  /dev/sda6 51 76 200781 83 Linux

  我們可以看到有sda這個設備,所以可以用 fdisk -l /dev/sda專門來顯示他的分區情況;比如我想格式化 /dev/sda6 分區為 ext3文件系統,則為:

  [root@localhost beinan]# mkfs -t ext3 /dev/sda6

  mke2fs 1.37 (21-Mar-2005)

  Filesystem label=

  OS type: Linux

  Block size=1024 (log=0)

  Fragment size=1024 (log=0)

  50200 inodes, 200780 blocks

  10039 blocks (5.00%) reserved for the super user

  First data block=1

  Maximum filesystem blocks=67371008

  25 block groups

  8192 blocks per group, 8192 fragments per group

  2008 inodes per group

  Superblock backups stored on blocks:

  8193, 24577, 40961, 57345, 73729

  Writing inode tables: done

  Creating journal (4096 blocks): done

  Writing superblocks and filesystem accounting information: 注:在這裡直接回車;

  done

  This filesystem will be automatically checked every 26 mounts or

  180 days, whichever comes first. Use tune2fs -c or -i to override.



  這樣就格式化好了,sda6現在就是ext3文件系統了;我們就可以用mount 加載這個分區,然後使用這個文件系統;
  [root@localhost beinan]# mkdir /mnt/sda6

  [root@localhost beinan]# chmod 777 /mnt/sda6

  [root@localhost beinan]# mount /dev/sda6 /mnt/sda6

  當然您也可以把分區格式化成其它的文件系統;比如我們把 /dev/sda6格式化為ext3 、ext2、reiserfs、fat32、msdos 文件系統,命令格式如下;

  [root@localhost beinan]# mkfs -t ext3 /dev/sda6

  [root@localhost beinan]# mkfs -t ext2 /dev/sda6

  [root@localhost beinan]# mkfs -t reiserfs /dev/sda6

  [root@localhost beinan]# mkfs -t fat32 /dev/sda6

  [root@localhost beinan]# mkfs -t msdos /dev/sda6

  ... ...

  2)mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkfs.msdos mkfs.vfat mke2fs 的介紹;

  我們先說了一個mkfs 工具後,我們再來介紹 mkfs.ext3 mkfs.reiserfs mkfs.ext2 mkdosfs mkfs.msdos mkfs.vfat ,其實mkfs 在執行的命令的時候,也是調用的這個工具,這也是我先把mkfs介紹的主要原因;

  通過文件名,我們就知道這些工具是支持什麼文件系統;這些命令為我們提供了更多的方便;

  

  [root@localhost beinan]# mkfs.ext3 /dev/sda6 注:把該設備格式化成ext3文件系統

  [root@localhost beinan]# mke2fs -j /dev/sda6 注:把該設備格式化成ext3文件系統

  [root@localhost beinan]# mkfs.ext2 /dev/sda6 注:把該設備格式化成ext2文件系統

  root@localhost beinan]# mke2fs /dev/sda6 注:把該設備格式化成ext2文件系統

  [root@localhost beinan]# mkfs.reiserfs /dev/sda6 注:把該設備格式化成reiserfs文件系統

  [root@localhost beinan]# mkfs.vfat /dev/sda6 注:把該設備格式化成fat32文件系統

  [root@localhost beinan]# mkfs.msdos /dev/sda6 注:把該設備格式化成fat16文件系統,msdos文件系統就是fat16;

  [root@localhost beinan]# mkdosfs /dev/sda6 注:把該設備格式化成fat16文件系統,同mkfs.msdos

  ... ...

  2)mkswap 把一個分區格式化成為swap交換區;

  [root@localhost beinan]# mkswap /dev/sda6 注:創建此分區為swap 交換分區

  [root@localhost beinan]# swapon /dev/sda6 注:加載交換分區;

  [root@localhost beinan]# swapoff /dev/sda6 注:關閉交換分區;

  我們查看系統已經加載的swap交換分區;

  [root@localhost beinan]# swapon /dev/sda6 注:加載交換分區;

  [root@localhost beinan]# swapon -s

  Filename Type Size Used Priority

  /dev/hda7 partition 787144 0 -1

  /dev/sda6 partition 225144 0 -3

  為什麼我的系統有兩個交換分區?因為我用移動U盤做的實驗,主要是為寫教程之用;sda6是我在U盤上建的swap分區;
  如果讓swap開機就加載,應該改 /etc/fstab文件,加類似如下一行;

  /dev/sda6 swap swap defaults 0 0 注:把此行中的/dev/hda7 改為您的交換分區就行;

  或者把命令行直接寫入 /etc/rc.d/rc.local中也行;

  swapon /dev/sda6

  如果您的硬盤不能再分區,您可以創建一個swap文件

  [root@localhost beinan]# dd if=/dev/zero of=/tmp/swap bs=1024 count=524288 注:創建一個大小為512M 的swap 文件,在/tmp目錄中;您可以根據自己的需要的大小來創建swap 文件;

  讀入了 524288+0 個塊

  輸出了 524288+0 個塊

  [root@localhost beinan]# mkswap /tmp/swap 注:把/tmp/swap 文件,創建成swap 交換區

  Setting up swapspace version 1, size = 536866 kB

  no label, UUID=d9d8645d-92cb-4d33-b36e-075bb0a2e278

  [root@localhost beinan]# swapon /tmp/swap 注:掛載swap

  [root@localhost beinan]# swapon -s

  Filename Type Size Used Priority

  /dev/hda7 partition 787144 888 -1

  /tmp/swap file 524280 0 -2

  注意:其實我們在安裝系統的時候,就已經劃分了交換分區;查看/etc/fstab,應該swap的行;如果您在安裝系統時沒有添加swap,可以通過這種辦法來添加;

  四、對文件系統進行掃描fsck;

  大家對Windows中的scandisk不寞生吧,在Linux中就有類似這樣的工具fsck,不過fsck 可不僅僅是掃描,還能修正文件系統的一些問題。值得注意的是fsck 掃描文件系統時一定要在單用戶模式、修復模式或把設備umount後進行。

  警告:如果掃描正在運行中的系統,會造成系統文件損壞;如果您的系統是正常,請不要用掃描工具,她可能會把您的系統搞壞掉,fsck運行是有危險的;

  以Fedora 為例,文件系統掃描工具有 fsck fsck.ext2 fsck.jfs fsck.msdos fsck.vfat fsck.ext3 fsck.reiserfs(reiserfsck)

  其中fsck 默認支持文件系統ext2,如果想支持ext3文件系統的掃描,應該加-j 參數,最好是我們應該根據不同的文件系統來調用不同的掃描工具,比如 fsck.ext2,fsck.jfs,fsck.msdos,fsck.ext3,fsck.reiserfs(reiserfsck)等。我們也可以根據自己的文件系統選擇不同的掃描工具;

  舉例:掃描/dev/hda10分區(基於reiserfs文件系統 );

  [root@localhost beinan]# fsck.reiserfs /dev/hda10

  reiserfsck 3.6.19 (2003 www.namesys.com)

  *************************************************************

  ** If you are using the latest reiserfsprogs and it fails **

  ** please email bug reports to [email protected], **

  ** providing as mUCh information as possible -- your **

  ** hardware, kernel, patches, settings, all reiserfsck **

  ** messages (including version), the reiserfsck logfile, **

  ** check the syslog file for any related information. **

  ** If you would like advice on using this program, support **

  ** is available for $25 at www.namesys.com/support.html. **

  *************************************************************

  Will read-only check consistency of the filesystem on /dev/hda10

  Will put log info to 'stdout'

  Do you want to run this program?[N/Yes] (note need to type Yes if you do):Yes

  ###########

  reiserfsck --check started at Wed Sep 14 08:54:17 2005

  ###########

  Replaying journal..

  Reiserfs journal '/dev/hda10' in blocks [18..8211]: 0 transactions replayed

  Checking internal tree..finished

  Comparing bitmaps..finished

  Checking Semantic tree:

  finished

  No corruptions found 注:沒有發現錯誤;

  There are on the filesystem:

  Leaves 2046

  Internal nodes 15

  Directories 130

  Other files 2305

  Data block pointers 1863657 (70565 of them are zero)

  Safe links 0

  ###########

  reiserfsck finished at Wed Sep 14 08:54:33 2005

  ###########

  對於fsck.ext2和fsck.ext3常用的幾個選項:

  -p Automatic repair (no questions) 注:自動修復文件系統存在的問題;

  -y Assume "yes" to all questions 注:如果文件系統有問題,會跳出提示是否修復,如果修復請按y;

  -c Check for bad blocks and add them to the badblock list 注:對文件系統進行壞塊檢查;這是一個極為漫長的過程;

  -n Make no changes to the filesystem 注:不對文件系統做任何改變,只要掃描,以檢測是否有問題;

  舉例:比如 /dev/hda6 (文件系統是ext3的),我想掃描並自動修復;

  [root@localhost beinan]# fsck.ext3 -p /dev/hda6

  注意: 針對不同文件系統,最好用相應的工具;雖然有時fsck 在不加參數的情況下能識別不同的文件系統;

  對於不同工具的最為詳細的參數,請參看--help或者man ,謝謝。。

  後記:

  創建文件系統和加載文件系統就算寫的差不多了;再高深的可能也不是我所能寫的。為了寫文件系統系統的掛載,我已經寫過幾篇文檔。可能還得需補充幾篇短小文檔,以及還有一個總結性的文檔;

  比如Fedora Core 4.0 默認安裝不支持創建reiserfs 文件系統,解決辦法是安裝reiserfs-utils ,這也是需要補充的;








Copyright © Linux教程網 All Rights Reserved