Linux磁盤管理命令

Linux有著管理各種存儲設備的強大能力。Linux把所有磁盤都當作文件管理,從而簡化我們對其進行的讀寫等操作。

IDE接口的硬盤在Linux中命名為:/dev/hd{a|b|c……},比如/dev/hda;

其他硬盤比如SATA接口的硬盤命名為:/dev/sd{a|b|c……},比如/dev/sda。

注:{}表示任選一。

每個硬盤的分區命名:

    IDE硬盤(以/dev/hda為例)為:

        /dev/hda1

        /dev/hda2

        /dev/hda3

        ……

    SATA或其他硬盤(以/dev/sda為例)為:

        /dev/sda1

        /dev/sda2

        /dev/sda3

磁盤屬于塊設備,我們可以使用ls命令查看下服務器上所有已安裝的磁盤:

[root@CENTOSLINUX ~]# ls -l /dev | grep "[[:space:]][h|s]" | grep "^b"
brw-rw----. 1 root disk      8,   0 Dec  3 11:10 sda
brw-rw----. 1 root disk      8,   1 Dec  3 11:10 sda1
brw-rw----. 1 root disk      8,   2 Dec  3 11:10 sda2
brw-rw----. 1 root disk      8,  16 Dec  3 11:10 sdb
brw-rw----. 1 root cdrom    11,   0 Dec  3 11:10 sr0

注:命令中的兩個grep命令用來過濾出磁盤所在的行。

說到分區,我們不得不提下MBR,MBR是mater boot recoder的簡寫,其存在于硬盤的0磁道0扇區,占據512B的空間(每個扇區也就512B),這512B的空間又細分如下:

    446B:存放boot loader,幾開機引導程序;

    64B:存放分區信息,每條分區信息占16B的空間,所以其最多存儲4條分區信息,

            所以每個硬盤最多能分出4個主分區或3個主分區加一個擴展分區;

    剩下的2B空間:是此MBR的有效性標識。

通過上面的信息我們知道每個硬盤最多能分出4個主分區或3個主分區加一個擴展分區,那是不是每個硬盤最多只能分4個分區呢?

非也,我們可以在這四個分區中留出一個做為擴展分區,擴展分區又可以細分出多個邏輯分區。擴展分區中的邏輯分區編號只能從5開始,比如我有一塊硬盤,劃分出2個主分區和1個擴展分區(主分區+擴展分區數量不能超過4個),擴展分區下又有兩個邏輯分區,其變號為:

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         262     2104483+  83  Linux
/dev/sdb2             263         524     2104515   83  Linux
/dev/sdb3             525        1830    10490445    5  Extended
/dev/sdb5             525        1178     5253223+  83  Linux
/dev/sdb6            1179        1830     5237158+  83  Linux

但是分區是怎么劃分出來的呢?

是通過fdisk命令:

使用方法:fdisk /dev/DEVICE_NAME 或者 fdisk -l

直接在shell中輸入fdisk -l只會把所有的硬盤和分區信息輸出到屏幕,可以自行測試。

對于fdisk /dev/DEVICE

比如:

[root@CENTOSLINUX ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x1c365eed.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').
Command (m for help):

會進入/dev/sdb的操作界面,直接在提示符處輸入對應的命令按提示操作即可,當不知道怎么操作時可以輸入m查看幫助:

Command (m for help): m
Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition
   l   list known partition types
   m   print this menu
   n   add a new partition
   o   create a new empty DOS partition table
   p   print the partition table
   q   quit without saving changes
   s   create a new empty Sun disklabel
   t   change a partition's system id
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit
   x   extra functionality (experts only)

    常用的輸入:

        p: 顯示已有分區

        n: 創建

        d: 刪除

        w: 保存

        q: 退出

        l: 列出可用的分區類型,類型很重要,比如swap只能用82類型的分區;

創建一個分區:

Command (m for help): n    <---n表示創建新分區
Command action
   e   extended
   p   primary partition (1-4)
p    <---表示創建主分區,e表示創建擴展分區
Partition number (1-4): 1    <---輸入主分區號,第一個則輸入1
First cylinder (1-2610, default 1):     <---輸入分區開始的磁柱,直接回車按默認即可
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +2G    <---輸入結束的磁柱,也可輸入大小,比如+2G或者+2000M?;剀嚰磩摻ㄍ瓿?。

創建擴展分區與創建主分區步驟相同;

在擴展分區下創建一個邏輯分區:

Command (m for help): n
Command action
   l   logical (5 or over)    <---注意邏輯分區號是從5開始的。
   p   primary partition (1-4)
l    <---l(L的小寫)表示邏輯分區
First cylinder (525-1830, default 525): 
Using default value 525
Last cylinder, +cylinders or +size{K,M,G} (525-1830, default 1830): +5G

創建邏輯分區與創建主分區過程基本相同,只是創建邏輯分區不需要輸入分區號。

切記,操作完成退出前別忘了輸入w執行保存分區信息,否則分區失敗,也就是沒有分區;

最后輸入q,退出fdisk命令。

更多fdisk用法請自行man。

分區完成可以在shell中使用 fdisk -l 查看或者 cat /proc/partitions 查看。

若 cat /proc/partitions 后沒有顯示新建的分區,可以使用partx命令讓內核重新讀取分區信息:

    partx -a /dev/sdb;

          -a表示add;

          更多partx用法請自行man。

創建分區后還是不能立即使用的,因為還要通過格式化和掛載才能使用,我們就先來看下怎么格式化分區吧;

格式化就是把分區格式化成特定的文件系統;

Linux支持的文件系統有:ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap;

其中ext2和VFAT為非日志文件系統,其余全部為日志文件系統;日志文件系統較為先進,穩定性較好。

    還有兩個特殊的:

        swap內存交換分區,用于存放內存交換頁面文件;

        Linux的虛擬文件系統: VFS,用于虛擬所有的文件系統,給用戶提供統一的接口。

為什么需要文件系統呢?

文件系統是為方便操作系統對分區的管理而對空間進行的一系列規劃整理,打個比方,你要做一個書架,你是不是要好好的劃分下書架的空間以便于更好管理書架并放置更多的書呢?

ext系列文件系統在分區中是以如下方式組織分區空間的:

blob.png

格式化分區的具體命令有mkfs,mke2fs,用法如下:

    1. mkfs.FS_TYPE OPTION DEVICE 或者 mkfs -t FS_TYPE DEVICE

                    有用OPTION:

                            -L 'LABEL' 添加lable

                    注:FS_TYPE為ext2, ext3, ext4, xfs, btrfs, reiserfs, jfs, swap等文件系統名稱。

    2. mke2fs OPTION DEVICE_NAME,DEVICE_NAME指分區名稱

            OPTION:

                -t {ext2|ext3|ext4}

                -b {1024|2048|4096} 設置存儲基本單元block的大小

                -L 'LABLE' 用于設置分區的LABEL

                -j 相當于-t ext3, 即使用日志功能

                -i #: 為數據空間中每多少個字節創建一個inode, 此大小不應該小于block的大小,

                                否則inode的數量將比block還多。。。。。。

                -N #: 為數據空間創建多少個inode

                -m #: 為管理人員預留的空間占據的百分比. 默認是5, 即5%

                -O FEATURE[,…] 啟用指定特性

                -O ^FEATURE[,…] 關閉指定特性

                注:mkfs.ext3 = mkfs -t ext3 = mke2fs -j = mke2fs -t ext3

其他常用命令:

    1. blkid 分區: 顯示分區信息

        或者:

        blkid -U UUID 根據UUID查找設備

        blkid -L LABEL 根據LABEL查找設備

    2. e2lable DEVICE [LABEL],查看或設定LABEL

    3. tune2fs OPTION DEVICE_NAME: 重新設定ext系統文件系統可調整參數的值

        OPTION:

            -l 查看超級塊信息

            -L 'LABEL' 設定LABEL

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

            -j: 打開日志功能, 將ext2 升級為ext3

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

            -o 指定默認掛載選項

    4. dumpe2fs OPTION DEVICE_NAME: 輸出DEVICE的信息

        OPTION:

            -h: 查看超級塊信息

    5. mkswap: 創建交換空間

        用法:mkswap [OPTION] DEVICE

        注意:前提調整DEVICE類型為82,可用類型可以通過fdisk DEVICE然后輸入l查看。

文件系統監測與修復命令:

    1.fsck: file system check的簡寫,用法如下:

        fsck.FS_TYPE 或 fsck -t FS_TYPE

            FS_TYPE 一定要與分區實際的文件系統類型對應

            OPTION:

                -a 自動修改錯誤

                -r 交互式修復錯誤

                e2fsck: ext系列文件系統專用

                -y 自動回答為yes

                -f 強制修復

原創文章,作者:Jacen,如若轉載,請注明出處:http://www.www58058.com/9634

(0)
JacenJacen
上一篇 2015-12-06 20:26
下一篇 2015-12-06 20:30

相關推薦

  • 文本編輯器vim概述與應用示例

    文本編輯器vim概述與應用示例 文本編輯器概述 vim編輯器是一種易用、功能強大的文本編輯器,可以基于三種不同的模式對文本進行編輯,包括編輯模式、輸入模式和末行模式。 編輯模式 模式轉換 i 表示在光標所在處插入 a 表示在光標后方插入 o 表示在光標所在處的下一行插入 O 表示在光標所在處的上一行插入 I 表示在光標所在行的行首插入 A 表示在光標所在行的…

    Linux干貨 2017-08-06
  • centos啟動模式更改

    臨時更改   用單用戶的方法 系統開機 然后在等待界面是按esc 然后會進入這個界面,根據下面的提示進入 按a 會進入下面這個界面 在最后一行輸數字代表第幾模式   文件更改   centos6   系統啟動時會初始化init init 的配置文件是/etc/inittab文件 用vim /etc/inittab進入查…

    2017-07-22
  • Linux用戶組管理

    馬哥網絡教育21期+第三周練習 用戶及用戶組 用戶配置文件     用戶:UID,/etc/passwd     組:GID,/etc/group 密碼配置文件     用戶:/etc/shadow    &n…

    Linux干貨 2016-09-02
  • 上下文管理練習(為加法函數計時)

    上下文管理(為加法函數計時) 為加法函數計時 使用裝飾器顯示該函數的執行時長 使用上下文管理顯示該函數的執行時長 裝飾器實現 import time import datetime from functools import wraps def logger(fn): @wraps(fn) # wraps(fn)(wrapper) def wrapper(*…

    2017-11-18
  • 馬哥linux0801課程內容

    0801課堂筆記 硬鏈接和軟鏈接最根本的區別 硬鏈接是同一個文件,而軟鏈接是兩個文件 軟鏈接查詢到文件的軟鏈接個數.比較麻煩. 而硬鏈接的個數可以通過鏈接數就可以看到. 硬鏈接不能跨分區,而軟鏈接可以跨分區 (因為每個分區都有自己的inode表) ln 創建硬鏈接 ln–s 創建軟鏈接(軟鏈接如果使用相對路徑,對象是相對軟鏈接的路徑,而硬…

    Linux干貨 2016-08-04
  • 從Linux小白到大?!c狼共舞的日子12(下)

    馬哥教育網絡班21期+第12周課程練習 5、為第4題中的第2個虛擬主機提供https服務,使得用戶可以通過https安全的訪問此web站點; (1)要求使用證書認證,證書中要求使用的國家(CN)、州(HA)、城市(ZZ)和組織(MageEdu); (2)設置部門為Ops,主機名為www2.stuX.com,郵件為admin@stuX.com; 1.CA生成私…

    Linux干貨 2016-12-26
欧美性久久久久