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
下一篇 2015-12-06

相關推薦

  • class9 bash編程基礎(一)

    一、編程基礎 程序:指令+ 數據 程序編程風格: 過程式:以指令為中心,數據服務于指令 對象式:以數據為中心,指令服務于數據 shell 程序:提供了編程能力,解釋執行 程序的執行方式 計算機:運行二進制指令; 編程語言: 低級:匯編 高級: 編譯:高級語言–> 編譯器–> 目標代碼   &n…

    Linux干貨 2016-08-15
  • 怎么解決VMware“該虛擬機似乎正在使用中”問題

    1)故障現象:  最近使用vmware workstation測試資料,經常會出現打開虛擬機的時候提示:“該虛擬機正在被使用”,點擊“獲取所有權”或者“取消”都不能處理問題(一般是沒有正常虛擬機導致的)。 2)處理方法: a.查找*.lck文件,然后刪除。 b.重啟vmware workstation服務 3)參考資料 http://jingyan…

    Linux干貨 2016-07-29
  • gzip壓縮算法

    gzip,zlib,以及圖形格式png,使用的是同一個壓縮算法deflate。我們通過對gzip源碼的分析來對deflate壓縮算法做一個詳細的說明: 第一,gzip壓縮算法基本原理的說明。 第二,gzip壓縮算法實現方法的說明。 第三,gzip實現源碼級的說明。 1. Gzip壓縮算法的原理      &n…

    Linux干貨 2015-07-30
  • 2016-08-12博客作業

    德摩根定理       在命題邏輯和邏輯代數中,德摩根定律(或稱德摩根定理)是關于命題邏輯規律的一對法則。奧古斯塔斯·德摩根首先發現了在命題邏輯中存在著下面這些關系: 非(P 且 Q)=(非 P)或(非 Q) 非(P 或 Q)=(非 P)且(非 Q)     …

    Linux干貨 2016-08-15
  • 馬哥教育網絡班20期+第6周課程練習

    請詳細總結vim編輯器的使用并完成以下練習題 vim三種模式: 用法:vim [option…] FILE 編輯模式:     字符跳轉:         h:向左移動一個字符     &…

    系統運維 2016-07-22
  • do some test

    1、簡述TCP三次握手四次揮手過程及各過程中客戶端和服務器端的狀態。     三次握手:         a(syn-send) -> send syn -> b(listen)         a(syn-send) <- receive …

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