磁盤管理1——分區和文件系統的創建

Linux磁盤及文件系統管理

Disk(硬盤)接口類型:

         IDE:并口,133MB/s

         SCSI:并口,640MB/s

         SATA:串口,6Gbps

         SAS:串口,6Gbps

         USB:串口,480MB/s

         并口:同一線纜可以接多塊設備:

             IDE:

                  兩個,主從

             SCSI:

                     寬帶:16-1個

                     窄帶:8-1個        

         串口:同一線纜只可以接一個設備:

硬盤:機械硬盤,固態硬盤

         機械硬盤:

             head:磁頭

             track:磁道

             cylinder:柱面

             secotr:扇區,512bytes

             平均尋道時間:5400rpm(每分鐘5400轉),7200,10000,15000rpm

Linux的哲學思想:一切皆文件

         設備類型:

             塊設備:block,隨機訪問,存取單位“塊”,磁盤

             字符設備:char,線性訪問,存取單位“字符”,鍵盤

        

         設備文件:FHS

             /dev:設備文件,關聯至設備的驅動程序,設備的訪問入口

             設備號碼:

             主設備號:major number,標識設備類型

             次設備號:minor number,標識同一類型下的不同設備

        

         mknod命令:創建設備文件

             mknod [OPTION]… NAME TYPE [MAJOR MINOR]

                 -m MODE:創建后的設備文件的訪問權限

                 eg:# mknod /dev/test b 100 1

        

         設備文件名:命名規則由ICANN指定

磁盤:

         IDE: /dev/hd[a-z]

           eg:/dev/hda ,/dev/hdb

         SCSI, SATA, SAS, USB: /dev/sd[a-z]  //用戶26個后使用aa,ab,ac,…..az

             eg:/dev/sda ,/dev/sdb, …

             同一設備上的不同分區:1,2, …

             eg:/dev/sda1 ,/dev/sda5

        

         磁盤分區:

             兩種分區方式:MBR ,GPT

             MBR: Master Boot Record ,1982年提出, 使用32位表示扇區數,分區不超過2T

             如何分區:按柱面

             0 磁道0扇區:512bytes

             446bytes: boot loader

             64bytes :分區表

             16bytes:  標識一個分區

             2bytes: 55AA

             4個主分區;3 主分區+1 擴展(N個邏輯分區)

            

             GPT:GUID patition table支持128個分區,使用64位,支持8Z(512Byte/block)64Z(4096Byte/block)

             使用128位UUID表示磁盤和分區GPT分區表自動備份在頭和尾兩份,并有CRC校驗位

             UEFI ( 統一擴展固件接口)硬件支持GPT

分區創建工具:parted,sfdisk和fdisk

fdisk命令:

1、查看磁盤的分區信息:

fdisk -l [device…] :列出全部[指定]磁盤設備上的分區情況

2、管理分區

fdisk device

fdisk命令提供了一個交互式接口來管理分區,它有許多子命令,分別用于不同的管理功能,索引的操作均在內存中完成,沒有直接同步到磁盤,指定使用w命令保存至磁盤上

     常用命令:

     n:創建一個新的分區

     d:刪除一個分區

     t:修改一個分區的分區類型

     l:查看或列出所有分類對應的id表

     w:保存退出

     q:不保存退出

     p:顯示當前分區

     m:查看幫助信息

注意:在已經分區并且已經掛載其中某個分區的磁盤設備上創建的新分區,內核可能在創建完成后無法直接識別,需要使用命令通知內核重新讀此分區

查看:cat /proc/partations

通知內核強制重讀磁盤分區表:

     CentOS5,7:partprobe [device]

     CentOS6,7:partx,kpartx

         新增分區:# partx -a [device]

         刪除分區:# partx -d -n M[-N] /dev/DEVICE  (M,N為分區的數字編號)


[root@CentOS6 boot]# lsblk         //目前磁盤上只有一塊磁盤sda,上面只有一個分區
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom  
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0 48.8G  0 part /
├─sda3   8:3    0 19.5G  0 part /testdir
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0  3.9G  0 part [SWAP]
└─sda6   8:6    0    1G  0 part /home
[root@CentOS6 boot]# fdisk /dev/sda           //進入到fdisk提供的交互式接口中,管理磁盤
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): n                  //新建一個分區
First cylinder (9592-26109, default 9592):                  //起始柱面為默認柱面
Using default value 9592
Last cylinder, +cylinders or +size{K,M,G} (9592-26109, default 26109): +10G          //直接指明空間為10G
Command (m for help): p            //顯示sda磁盤在內存中的已存在分區(注意:此時修改還沒有寫入磁盤上,如若修改錯誤,可以直接使用q命令退出)
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x0009f14f
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400        8950    20480000   83  Linux
/dev/sda4            8950       26109   137829376    5  Extended
/dev/sda5            8950        9460     4096000   82  Linux swap / Solaris
/dev/sda6            9460        9591     1055804   83  Linux
/dev/sda7            9592       10897    10490413+  83  Linux                //新建的磁盤,10G
Command (m for help): w                  //保存退出,并寫如磁盤
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.            //提示磁盤分區情況和內存不同步,要使用命令手動同步
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@CentOS6 boot]# partx -a /dev/sda                        //手動同步系統磁盤情況
BLKPG: Device or resource busy
error adding partition 1
....
error adding partition 6
[root@CentOS6 boot]# fdisk -l /dev/sda                  //查看sda磁盤的情況
Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x0009f14f
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400        8950    20480000   83  Linux
/dev/sda4            8950       26109   137829376    5  Extended
/dev/sda5            8950        9460     4096000   82  Linux swap / Solaris
/dev/sda6            9460        9591     1055804   83  Linux
/dev/sda7            9592       10897    10490413+  83  Linux

創建文件系統:

文件系統是操作系統用于明確存儲設備或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件結構稱為文件管理系統,簡稱文件系統。

從系統角度來看,文件系統是對文件存儲設備的空間進行組織和分配,負責文件存儲并對存入的文件進行保護和檢索的系統。具體地說,它負責為用戶建立文件,存入、讀出、修改、轉儲文件,控制文件的存取,安全控制,日志,壓縮,加密等

格式化:低級格式化(分區之前進行,劃分磁道),高級格式化(分區之后進行,創建文件系統)

VFS:Virtual File System

         Linux 文件系統: ext2, ext3, ext4, xfs (SGI), btrfs(Oracle), reiserfs, jfs(AIX ), swap

         swap:交換分區

         光盤:iso9660

         Windows:fat32, ntfs

         Unix: FFS (fast ), UFS (unix ), JFS2

         網絡文件系統:NFS, CIFS

         集群文件系統:GFS2, OCFS2 (oracle)

         內核級分布式文件系統:ceph

         偽文件系統:proc, ysfs, tmpfs, hugepagefs

         用戶空間的分布式文件系統:moosefs, mogilefs, glusterfs

         RAW :未經處理或者未經格式化產生的文件系統

         根據其是否支持"journal"(日志)功能:

                 何為日志文件系統:加入了對文件系統更改的日志記錄,減少文件被破壞的機率,訪問磁盤時系統死機不會丟失文件

                 日志型文件系統: ext3, ext4, xfs, …

                 非日志型文件系統: ext2, vfat

        

         查前支持的文件系統:# cat /proc/filesystems

磁盤和文件系統管理:

文件系統管理工具:

     創建文件系統的工具:mkfs, mke2fs

     檢測及修復文件系統的工具:fsck, e2fsck

     查看其屬性的工具:dumpe2fs, tune2fs

     調整文件系統特性:tune2fs

內核級文件系統的組成部分:

     文件系統驅動:由內核提供

     文件系統管理工具:由用戶空間的應用程序提供

ext系列文件系統的管理工具:

mkfs:

  常見的2中表現方式:

         (1)mkfs.FS_TYPE /dev/DEVICE

         FS_TYPE:

         ext2 ,ext3 ,ext4 ,xfs ,btrfs ,vfat

         (2)mkfs -t FS_TYPE /dev/DEVICE

         選項:

         -b:指定塊大小

         -L 'LABEL':設定卷標

ext系列文件系統專用管理工具:mke2fs

         mke2fs [OPTIONS] device

         -t {ext2|ext3|ext4}:指明要創建的文件系統類型

            mkfs.ext4 = mkfs -t ext4 = mke2fs -t ext4

         -b {1024|2048|4096}:指明文件系統的塊大?。J的最小存儲單元)

         -L LABEL:指明卷標

         -j:創建有日志功能的文件系統(ext3)

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

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

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

         -I  一個inode記錄大小128—4096

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

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

         -O ^FEATURE:關閉某指定特性

[root@CentOS6 boot]# mke2fs -t ext4 -L mydata -b 1024 /dev/sda7              //指明文件系統類型,指明卷標,指明了塊大小
mke2fs 1.41.12 (17-May-2010)
Filesystem label=mydata
OS type: Linux
Block size=1024 (log=0)                  //塊大小
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
....

e2label命令:卷標的查看和設定

         查看:# e2label device

         設定:# e2label device LABEL

blkid :塊設備屬性信息查看

  blkid [OPTION]… [DEVICE]

         -U UUID:根據指定的UUID來查找對應的設備

         -L LABEL:根據指定的LABEL來查找對應的設備

[root@CentOS6 boot]# e2label /dev/sda7          //查看卷標
mydata
[root@CentOS6 boot]# e2label /dev/sda7 mytest          //修改卷標為mytest
[root@CentOS6 boot]# blkid /dev/sda7          //查看設備信息,已經卷標是否被修改
/dev/sda7: LABEL="mytest" UUID="fda5fba0-cb96-4067-892c-377c42150ceb" TYPE="ext4"

tune2fs命令:查看或修改ext系列文件系統的某些屬性

     注意:塊大小創建后不可修改

     tune2fs [OPTIONS] device

         -l:查看指定文件系統超級塊信息;super block

         修改超級塊的內容:

         -L 'LABEL':修改卷標

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

         -j:將ext2無損升級為ext3

         -O:文件系統屬性啟用或禁用, –O ^has_journal

         -o:調整文件系統的默認掛載選項,–o ^acl

         -U UUID:修改UUID號

[root@CentOS6 boot]# tune2fs -l /dev/sda7
tune2fs 1.41.12 (17-May-2010)
Filesystem volume name:   mytest              //卷標
Last mounted on:          <not available>
Filesystem UUID:          fda5fba0-cb96-4067-892c-377c42150ceb
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr .... //文件特性,最重要的是has_journal特性(表示支持日志功能),使用-O選項可以關閉此特性,則文件系統類型退后到ext2
Filesystem flags:         signed_directory_hash 
Default mount options:    (none)
...
Inode count:              655872         //inode個數
Block count:              10490412      //塊個數
Reserved block count:     524520          //預留給管理員的空間塊個數
Free blocks:              10286629
Free inodes:              655861
First block:              1
Block size:               1024         //塊大小,為我們指明的1024
Fragment size:            1024
...

dumpe2fs命令:顯示ext系列文件系統的屬性信息

    dumpe2fs [-h] device:查看[超級塊信息]所有分組塊信息

用于實現文件系統檢測的工具:

因進程意外中止或系統崩潰等原因導致當前操作非正常終止時,可能會造成文件損壞(掛載為文件系統標記為“dirty”);此時,應該檢測并修復文件系統;建議離線進行

ext系列文件系統的專用工具:

     e2fsck:- check a Linux ext2/ext3/ext4 file system

      e2fsck [OPTIONS] device

             -y:對所有問題自動回答為yes(不建議使用,比如有文件傳輸了99%,手動傳1%就可以了)

             -f:即使文件處于clean狀態,也要強制進行檢測

[root@CentOS6 boot]# e2fsck -f /dev/sda7
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
mytest: 11/655872 files (0.0% non-contiguous), 203783/10490412 blocks

fsck:- check and repair a Linux file system

  fsck [OPTIONS] device

         -t fstype:指明文件系統

         -a:無須交互自動修復所有錯誤

         -r:交互式修復

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

(0)
megedugaomegedugao
上一篇 2016-08-27
下一篇 2016-08-27

相關推薦

  • 用戶組和權限管理知識總結

    在介紹本期內容之前呢,有一個小插曲.就是由于昨天晚上我沒有正常關閉虛擬機,今天早上打開的時候一直顯示正在使用中,彈 出來個小框框,如下圖,馬賽克部分呢就是提示的路徑,安裝路徑不一樣,提示的就也不一樣. 此虛擬機似乎正在使用中。 如果此虛擬機已在使用中,請按“取消”按鈕,以免損壞它。如果此虛擬機未使用,請按“取得所有權(T)”按鈕以獲取它的所有權。&…

    2017-07-28
  • 關于大型網站技術演進的思考(六):存儲的瓶頸(6)

    原文出處: 夏天的森林  在講數據庫水平拆分時候,我列出了水平拆分數據庫需要解決的兩個難題,它們分別是主鍵的設計問題和單表查詢的問題,主鍵問題前文已經做了比較詳細的講述了,但是第二個問題我沒有講述,今天我將會講講如何解決數據表被垂直拆分后的單表查詢問題。 要解決數據表被水平拆分后的單表查詢問題,我們首先要回到問題的源頭,我們為什么需要將數…

    2015-03-11
  • 用戶和組命令的簡單使用

    用戶和組管理命令: 用戶管理命令:useradd usermod userdel 組管理命令:groupadd groupmod groupdel 用戶創建:useradd -u:uid 定義在/etc/login.defs -o:配合-u選項,不檢查uid的唯一性 -g:gid,指明用戶所屬基本組,可為組名,也可以gid -c:用戶的詮釋信息 -d;指定用…

    Linux干貨 2016-10-24
  • N25期第七周作業

    創建一個10G分區,并格式為ext4文件系統   要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl 掛載至/data/mydata目錄,要求掛載時禁止程序自動運行,且不更新文件的訪問時間戳 fdisk /dev/sdb # size 10G type 83 mke2fs -t ext4 -b 20…

    Linux干貨 2017-02-28
  • N25-第七周

    1、創建一個10G分區,并格式為ext4文件系統; (1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl;     [root@localhost ~]# fdisk -l Disk /dev/sda: 42.9 GB, 42949672960 bytes 255…

    Linux干貨 2017-05-21
  • zabbix如何監控nginx的status

    nginx   status配置 server {                 listen      80;                 server…

    Linux干貨 2016-02-19
欧美性久久久久