fdisk分區與掛載

   1 分區
                 2 格式化
                 3 掛載

---------------------------------------
我們先來看下分區指令
fdisk

比如我這裏,我的硬盤是掛載在/dev/hda上

1 分區 裝系統時可以看到
2 fdisk -l

那麼可以
fdisk /dev/hda   (注意了,我這後面沒有數字)
然後按m 可以查看幫助
我說幾個常用的````

d 刪除一個硬盤分區
n 新增一個硬盤分區
p 將當前磁盤分區列出來
q 不保存退出
w 保存後退出(不要隨便按這個)

查看目前所有的分區有哪些
fdisk -l
注意了 列表有個ID一項,是分區格式的代碼,
可以在fdisk裏 用l參數看到

提醒一下:這個fdisk命令 只有root才能執行
還有一個要注意的地方,/dev/hda後面不要加數字,因爲它是針對整個硬盤
而不是某個分區

-----------

下面我們來看下具體的操作

刪除一個硬盤分區

新增一個硬盤分區
         按N後,系統會提示你,
         如果你已經有擴展分區(extended)時,系統會提示:要新增主分區(Primary)
         還是邏輯分區(Logical)
         如果你還沒有擴展分區,那麼系統會提示你要新增主分區還是擴展分區
        
         如果這裏你已經用完了4個主分區+擴展分區的話,那麼就只有邏輯分區
         可以選擇了(這裏要是還不大瞭解的話,可以去複習下第二講)

         如果是選擇的primary的話,按p
         否則按e(extended) 或 l(logical)


2 磁盤格式化
這個沒什麼可講的````爲了突出通常所說的分區其實是2個步驟
1 分區        
2 格式化
一般的工具 比如PQ 就是分區的時候 同時格式化了,其實這是2個步驟

好了,我這隨便舉個分區例子
         將分區/dev/hda3格式化爲ext3
[root@localhost ~]mke2fs -j -L "new" /dev/hda3
這裏注意了,執行這個命令之前,要先把機器重啓,不然會提示錯誤
我這裏就不重啓了,節約大家時間
執行的結果是這樣的:
------------
[root@localhost ~]# mke2fs -j /dev/hda4
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
12048 inodes, 48192 blocks
2409 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=49545216
6 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
         8193, 24577, 40961

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.   Use tune2fs -c or -i to override.
------------

3 掛載與卸載

我們現在來看下怎麼將上面建立的分區在linux下能使用,
需要將他掛載在linux上,所謂的 掛載點 則是該分區的目錄

這裏說個需要注意的地方,如果你掛載的目錄裏面不是空的
那麼掛載後,原目錄下的東西就會消失。不用擔心,只是暫時的消失
舉個例子來說,假設你的/home原來是屬於/根目錄下的分區所有,
這個目錄裏有/home/test,/home/test2 這2個目錄,然後你掛載新的硬盤
並且想直接掛載/home下,那麼當你掛載上新的硬盤時,則/home目錄下
顯示的是這個新硬盤的內容,原來的test和test2就被暫時的隱藏掉了。
不是會覆蓋掉,只是暫時的隱藏起來。等你的新的硬盤umount後,該目錄的內容
就可以再次跑出來了

那怎麼掛載呢~~
指令是:mount [參數] 盤符代號 掛載點

參數:我這裏只介紹2個,其他的用到的不多

-t          你的linux的支持的文件格式,比如,掛載/ext3/格式,就寫上-t ext3
         用來告訴系統,用ext3的格式來掛載這個分區

         常見的格式有
         linux                 :         ext2         ext3
         windows         :         vfat(就是fat32)
         光盤                 :         iso9660

         系統默認支持的格式在/lib/modules/`uname -r`/kernel/fs裏可以找到
         若你mount後面沒有加-t,linux在默認的情況下,會用/etc/filesystems這個文件
         內的規範來一個個試

-o         這個參數可以設置權限
         ro, rw         :讓該扇區以可擦寫或者是隻讀的型態掛載上來,如果是 vfat 之
                         類的非 Linux 傳統扇區,您不想讓 Linux 變更的話,
                         那麼使用 ro也不錯!能夠提供有效的保護呢!
         async,sync         :是否允許磁盤與內存中的數據以同步寫入的動作?,默認是async
                         (使用 async 這個異步寫入的方式會比較快速一些。)
         auto,noauto         :在開機的時候是否自動掛載該扇區?
                        
         dev,nodev         :是否可以建立文件?dev爲可以
         suid,nosuid         :該檔案系統是否允許 SUID 的存在?一般而言,
                         如果不是 Linux系統的扇區,而是一般數據
                         的 partition ,那麼設定爲 nosuid 確實比較安全一些。
                         畢竟有 SUID 是蠻誇張的一件事。
         exec,noexec         : 限制在此檔案系統內是否可以進行『執行』的工作?
                         如果是純粹用來儲存資料的, 那麼可以設定
                         爲 noexec 會比較安全,相對的,會比較麻煩!
         user,nouser         :是否允許使用者使用 mount 指令來掛載呢?一般而言,
                         我們當然不希望一般身份的 user 能使用 mount ,
                         因爲太不安全了,因此這裏應該要設定爲 nouser
         defaults         :默認的是:rw, suid, dev, exec, auto, nouser, async
         remount         :重新掛載,這個在系統出錯,或重新更新參數時,很有用

例1:把我們新建的/dev/hda4掛載在mnt/hda4上面
         [root@localhost ~]# mkdir /mnt/hda4        
         [root@localhost ~]# mount -t ext3 /dev/hda4 /mnt/hda4
         執行成功後不會有顯示,錯誤了就會有了- -

例2:將/重新掛載,並加入參數爲rw
         [root@localhost ~]# mount -o remount,rw /

例3:將系統所有的掛載數據列出來
         [root@localhost ~]# mount

注意了:1 掛載的時候需只有root才能執行,
           2 掛載前要知道你需要掛載的分區格式,可以:fdisk -l 查看

卸載的指令是:umount
         格式:umount 硬盤代碼 或 掛載點

         我們把例1的掛載卸載就是
         [root@localhost ~]# umount /dev/hda4         或者是
         [root@localhost ~]# umount /mnt/hda4


---------
好了 我們再來看下其他幾個常用的掛載

掛載WIN盤符
         1 fdisk -l 看下你要掛載的盤的符號是什麼 是什麼格式
         2 [root@localhost ~]# mkdir /mnt/win2000e
         3 [root@localhost ~]# mount -t vfat /dev/hda1 /mnt/win2000e
         我這裏是隨便假設的的格式

掛載USB
         現在的大多數USB插上去後都可以識別
         1 再次用fdisk -l列出所有分區信息,你會發現你的系統
                 多了一個/dev/sda[??]的代號,第一個USB代號爲/dev/sda
                 假設我們這裏是sda1,通常都是這個,而且是WIN下fat32的格式
         2 [root@localhost ~]# mkdir /mnt/usb
         3 [root@localhost ~]# mount -t vfat /dev/sda1 /mnt/usb

開機自動掛載/etc/fstab 與 /etc/mtab
         我們可以在開機的時候將我要的分區掛好,這樣就不用每次進入系統掛載一次了
         直接修改/etc/fstab
         這裏又要說幾個要注意的地方
         1 根目錄是必須掛載的,而且一定要比其他掛載點先掛載進來
         2 其他掛載點必須爲已建立的目錄,
         3 所有分區,在同一時間類,只能掛載一次
         4 如果要卸在,必須先將工作目錄移動到掛載點的目錄之外

我們先來看下/etc/fstab這個文件
[root@localhost ~]# cat /etc/fstab
#Device                 Mount point                         filesystem         parameters         dump         fsck
LABEL=/                 /                     ext3     defaults         1 1
devpts                   /dev/pts               devpts   gid=5,mode=620   0 0
tmpfs                   /dev/shm               tmpfs   defaults         0 0
proc                     /proc                 proc     defaults         0 0
sysfs                   /sys                   sysfs   defaults         0 0
LABEL=SWAP-hdc4         swap                   swap     defaults         0 0

我這裏多了一行,註釋,方便看清楚,好了,我們來具體看下

1     硬盤代號或該硬盤的 Label:
         這個就是裝置代號啦, 將您需要的硬盤代號給他填上去吧。
         這個提一個,我們格式化盤的時候用到一個-l參數
         我們也可以利用 Label 來掛載檔案系統
         例如上表當中的特殊字體的第一行, 根目錄 (/) 就是以 Label 名稱爲 / 的磁盤分割槽來掛載的
         利用 label 掛載時,您必須要知道您的磁盤內的 label 名稱,
         可以利用 e2label 來更改標頭名稱啊。 在知道了 label 名稱後,最後就可以利用
         LABEL=(your label name) 來設定您的盤

         e2label指令
         格式:e2label 硬盤代號   新的Label名稱
         [root@localhost ~]# e2label /dev/hdb5 new

2           掛載點 (mount point)::
         這裏一定要是目錄才行。要注意了


3         磁盤分割槽的檔案系統:
         就如同我們在這個章節一開始就談到的, Linux 在傳統上面,使用的是 ext2/ext3 等檔案系統,
         目前則加入了很多日誌式檔案系統,例如 reiserfs 及 XFS 等檔案系統的支持。 此外,存在已
         久的 Windows vfat, msdos 及 iso9660 的光盤檔案系統,
         還有網絡檔案系統如 nfs, smbfs 等等,都可以被支持。這個字段就是寫這些檔案系統的地方

4         通常情況下這裏用默認的就行了defaults

5          是否被dump備份
         在 Linux 當中,可以利用 dump 這個指令來進行系統的備份的。
         而 dump 指令則會針對/etc/fstab 的設定值,去選擇是否要將該 partition 進行備份的動作
         0 代表不要做 dump備份, 1 代表要進行 dump 的動作。 2 也代表要做 dump 備份動作,
         不過,該 partition 重要度比 1 小。

6         是否以 fsck 檢驗扇區:
         開機的過程中,系統預設會以 fsck 檢驗我們的 partition 內的 filesystem 是否完整。
         不過,某些 filesystem 是不需要檢驗的,例如虛擬內存 swap ,或者是特殊檔案系統,
         例如 /proc 與 /sys 等等。所以,在這個字段中,我們可以設定是否要以 fsck 檢
         驗該filesystem。
         0 是不要檢驗, 1 是要檢驗, 2 也是要檢驗,不過 1 會比較早被檢驗
         一般來說,根目錄設定爲 1 ,其它的要檢驗的 filesystem 都設定爲 2 就好了。

--------
好了,所以說,我們要把上面例子的/dev/hda4/這個 ext3 的 filesystem
掛載到 /mnt/hdb4時, 並且在開機的時候就已經自動的掛載好,
那麼就可以將底下這一行寫入到 /etc/fstab 當中了:

/dev/hdb5 /mnt/hdb5 ext3 defaults 0 0

所以說,以後您自己建立的磁盤檔案系統想在開機的時候掛載好時,
就在 /etc/fstab 加入
當我們編輯 /etc/fstab 後,爲了避免可能的錯誤,通常就會以 mount -a 這個指令來測試看看。

這裏還提醒一個小技巧:

/etc/fstab 是開機時的設置文件,不過,實際 filesystem 的掛載是記錄到
         /etc/mtab 與 /proc/mounts這兩個檔案當中的。每次我們在更動 filesystem 的掛載時,
         也會同時更動這兩個檔案。但是,萬一發生您在 /etc/fstab 輸入的數據錯誤,導致無法順利
         開機成功,而進入單人維護模式當中,那時候的 / 可是 read only 的狀態,    
         當然您就無法修改 /etc/fstab ,也無法更新 /etc/mtab ~那怎麼辦?
         可以利用底下這一招:
         [root@linux ~]# mount -n -o remount,rw /
         加上 -n 則不更新 /etc/mtab ,加上 -o 則提供額外的參數設定。 利用這一動作,
         您的 / 就可以讀寫,那麼自然就能夠更新檔案內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章