linux下的磁盤操作

linux 系統中所有的硬件設備都是通過文件的方式來使用和表達的。位於/dev目錄下的。成爲設備文件。設備文件分爲;
      字符設備文件和塊設備文件。字符設備文件也被稱爲"raw"設備文件。比如打印機。終(TTY)。     

      塊設備文件。是以數據塊的方式存取的。系統通過塊設備存取文件的時候,先從內存的buffer中讀或寫數據,而不是直接傳送數據到物理磁盤。這樣提高了磁盤的I/O性能。
    企業常用硬盤:sas stat ssd
    linux磁盤設備常用方案:主設備號+次設備號+磁盤分區編號
        1.主設備號代表設備的類型:比如:hd 代表IDE硬盤。sd代表SCSI硬盤。tty代表終端設備。
        2.次設備號代表相同設備的序號:‘a-z‘就表示設備的序號。例如:/dev/sda 和 /dev/sdb 就表示第一和第二塊
        SCSI 硬盤。當然在IDE硬盤中也可能出現系統只有一塊磁盤。卻顯示 /dev/hdb。這與硬盤的跳線有關。
        3.磁盤分區號:用x 表示在每塊磁盤上劃分的磁盤分區編號。
        比如 /dev/sdbx 就表示第二塊SCSI硬盤的第“x“個分區。
    磁盤的使用
        linux下設備對應的是硬盤分區,對任何設備都需要通過掛載的方式實現的要完成掛載,需要3個條件:
        1.掛載磁盤分區的文件系統類型。
        2.要掛載分區對應的設備文件
        3.已經存在的目錄作爲掛載點
  常用於硬盤的命令:fdisk (應用範圍:容量小於 2T) 分爲命令行模式和交互模式(一般進入磁盤的操作都是交互模式)
        查看系統的磁盤設備:# fdisk -l  (可以查看系統上的硬盤信息)
            # fdisk /dev/sda (如果後面接具體的硬盤就是對硬盤的操作)當然所有的操作前必須卸載硬盤。
        掛載命令:
        # mount /dev/sdbx /data  掛載分區
        # mount /dev/cdrom /mnt 掛載光盤
        # mount -t ntfs-3g /dev/sdc /data1  掛載移動硬盤需要指定文件類型 -t ntfs-3g
        卸載命令:
        # umount /mnt 卸載分區
        如果硬盤故障怎麼修復;
            進入 linux rescure模式下:執行  fsck /dev/sdb -y (fsck 一般會自動識別文件類型)
        查看分區的情況:
                    # df -hT
            Filesystem     Type   Size  Used Avail Use% Mounted on
            /dev/sda2      ext4    29G  6.0G   22G  22% /
            tmpfs          tmpfs  495M     0  495M   0% /dev/shm
            /dev/sda1      ext4   194M   29M  155M  16% /boot
            /dev/sda5      ext4    48G  185M   46G   1% /data
        這裏密切關注  Use% 代表磁盤已經使用的空間。如果爲100%,則表示磁盤滿了。系統運行受阻。
    磁盤分區的劃分標準:
        磁盤分區由主分區,擴展分區和邏輯分區組成。
        在一塊硬盤上,主分區最大個數是4個,擴展分區算是一個主分區。擴展分區可以建立多個邏輯分區。
        主分區包括擴展分區編號:1-4.邏輯分區從5開始。邏輯分區建立在擴展分區的基礎上而非主分區上。
        擴展分區可以理解爲邏輯分區的"容器"。實際使用的是主分區和邏輯分區。
        下面看一下 /dev/sda 硬盤的情況:
        # fdisk -l
        Disk /dev/sda: 85.9 GB, 85899345920 bytes
        255 heads, 63 sectors/track, 10443 cylinders
        Units = cylinders of 16065 * 512 = 8225280 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0x000411d2
           Device Boot      Start         End      Blocks   Id  System
        /dev/sda1   *           1          26      204800   83  Linux
        /dev/sda2              26        3851    30720000   83  Linux
        /dev/sda3            3851        4106     2048000   82  Linux swap / Solaris
        /dev/sda4            4106       10444    50912256    5  Extended
        /dev/sda5            4106       10444    50911232   83  Linux
        這裏的start 和end 的單位是柱面。 Id 選項 83代表主分區和邏輯分區
        82 代表swap交換分區   5代表 擴展分區(擴展分區不能使用。只是作爲邏輯分區的容器)
        8e 代表lvm 分區 ( 7 NTFS 分區)
    硬盤分區:
    # fdisk dev/sdb
    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)
   這裏日常用到的是:
    d :刪除一個分區
        選定分區號即可。
    n : 增加一個新的分區包括2個選項 e 擴展分區 p 主分區
         e   extended
        p   primary partition (1-4)
        還有就是設定大小的時候,如果不輸入數值。默認佔有剩餘所有的空間。
    p :顯示分區信息
    q : 退出交互操作,不保存操作的內容
    t : 改變分區類型
        輸入後提示輸入L 查看分區標識。設定相應的類型
    w :寫入飛哪去表信息到硬盤,保存操作退出
    創建分區實例:
        Command (m for help): n
        Command action
           e   extended
           p   primary partition (1-4)
        p
        Partition number (1-4): 2
        First cylinder (263-2610, default 263):
        Using default value 263
        Last cylinder, +cylinders or +size{K,M,G} (263-2610, default 2610): +2G

        需要注意的是這裏:如果想分很多分區的話。第四個一定是 extended (擴展分區)
        因爲系統只支持4個主分區。(擴展分區可以算作一個主分區)
        多餘4個的分區可以在邏輯分區表示(前提是建立在擴展分區基礎上的)
    創建完成,可以w 退出
    如何使用,創建的分區?
        格式化分區,然後掛載磁盤。
        # fdisk /dev/sdb -l  (查看磁盤分區情況)
        Disk /dev/sdb: 21.5 GB, 21474836480 bytes
        255 heads, 63 sectors/track, 2610 cylinders
        Units = cylinders of 16065 * 512 = 8225280 bytes
        Sector size (logical/physical): 512 bytes / 512 bytes
        I/O size (minimum/optimal): 512 bytes / 512 bytes
        Disk identifier: 0x5ab8b6fd

           Device Boot      Start         End      Blocks   Id  System
        /dev/sdb1               1         654     5253223+  83  Linux
        /dev/sdb2             655        1177     4200997+  83  Linux
        /dev/sdb3            1178        1570     3156772+  83  Linux
        /dev/sdb4            1571        2610     8353800    5  Extended
        /dev/sdb5            1571        1832     2104483+  83  Linux
        /dev/sdb6            1833        2610     6249253+  83  Linux
        # mkfs.ext4 /dev/sdb6   (格式化文件系統位ext4)
        # mkdir /sdb6  (創建掛載點)
        # mount /dev/sdb6 /sdb6  (掛載分區)
        # df -hT | grep sdb6   (查看結果)
        Filesystem     Type   Size  Used Avail Use% Mounted on
        /dev/sdb6      ext4   5.9G  140M  5.5G   3% /sdb6
    如果磁盤大於2T。使用parted 工具。可以完成超大磁盤分區。
        既然分區大了,那麼分區表也做了響應的調整。
        分區表分爲:MBR 和GPT 兩種。
        MBR 支持2T以下硬盤容量。最多支持4個主分區或3個主分區+ 1個擴展分區。正式因爲這個原因:
        我們要使用多個分區。就必須利用擴展分區作爲容器擴容。
        GPT 支持大於2T 的硬盤容量。最多128個分區。最大達到18EB。
    首先安裝parted   #  yum install parted -y
    parted 的使用:
        # parted  (進入parted 分區交互模式)
        GNU Parted 2.1
        Using /dev/sda
        Welcome to GNU Parted! Type 'help' to view a list of commands.
        (parted) select /dev/sdb  (切換磁盤分區 sda是系統盤不可以分的。sdb 是新加測試硬盤)
        Using /dev/sdb
        (parted) p free  (p是print的簡寫。查看磁盤情況。free 顯示剩餘空間)                                                         
        Model: VMware, VMware Virtual S (scsi)
        Disk /dev/sdb: 21.5GB
        Sector size (logical/physical): 512B/512B
        Partition Table: msdoc
        (parted) mklabel gpt   (前面說了要想劃分更大的分區。分區表一定要改變。mklabel  創建分區表類型)
        Warning: Partition(s) on /dev/sdb are being used.                         
        Ignore/Cancel? Ignore  (這裏是測試實驗。所以選擇忽略。真實環境如果磁盤又數據或掛載選擇 Cancel)
        Yes/No? yes     (是否進行執行)
        (parted) mkpart primary 0gb 15gb  (創建主分區。開始位置,結束位置。硬盤大小 15G)
        (parted) mkpart primary 15gb 21.5gb (創建第二個主分區。開始位置15G 結束位置21.5G 。大小位6.5G)
        (parted) rm  2 (刪除第二個主分區)
        (parted) quit (離開 parted 交互模式)
    然後就是格式化分區。掛載和fdisk無異。
    這裏查看的時候建議用:
        # parted /dev/sdb p
        不建議用 # fdisk /dev/sdb -l (這種方式不支持gpt 分區表。所以顯示的分區是一個整體)

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