磁盤構造/msdos分區(fdisk)格式化(mkfs)和掛載


分區不是必要的,分區是與系統盤分開,防止數據丟失。

磁盤使用流程:查看磁盤(fdisk -l---分區---格式化(創建文件系統)----掛載(自動掛載)

分區表類型:msdos(一般是系統分區 gpt(一般是數據分區)

Msdos(Microsoft Disk Operating System,):最多支持4個分區,單分區最大2T.

GptGUID Partition Table,其含義為“全局唯一標識磁盤分區表”):沒有分區數量限制,單分區最大18EB

msdos只支持4個分區,所以若需多個分區,可以用擴展分區.主分區分完后,其他是擴展分區,在擴展分區里區分邏輯分區,由擴展分區管理.擴展分區只能有一個,負責管理邏輯分區,不能進行格式化.主分區能當引導分區用,邏輯分區不能,其他存儲數據都一樣.主分區和邏輯分區可以格式化.主分區不是必須的,一般會將硬盤所有容量給擴展分區.

Msdos分區表類型:分區表信息會寫在磁盤頭,容量有限,故最多只支持4個分區.而在擴展分區里會記錄分區表,就可以建多個邏輯分區了.一般都是分一個主分區,其他全部空間給擴展分區,然后在里面分配邏輯分區

主分區和擴展分區編號是1-4,邏輯分區時5-over...

針對新的磁盤,創建完成保存退出后,會自動更新分區表信息,故舊磁盤需partx -a device_name  (a --add )

查看磁盤:ll  /dev/sd*

查看磁盤:fdisk -l 

[root@lbg ~]# ll /dev/sd*

brw-rw---- 1 root disk 8,  0 Oct  4 16:30 /dev/sda

brw-rw---- 1 root disk 8,  1 Oct  4 16:30 /dev/sda1

brw-rw---- 1 root disk 8,  2 Oct  4 16:30 /dev/sda2

brw-rw---- 1 root disk 8,  3 Oct  4 16:30 /dev/sda3

brw-rw---- 1 root disk 8, 16 Oct  4 16:30 /dev/sdb

[root@lbg udev]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000c5fa7

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *      2048      821247      409600   83  Linux

/dev/sda2          821248     1230847      204800   82  Linux swap / Solaris

/dev/sda3         1230848    41943039    20356096   83  Linux

介紹說明:Disk /dev/sda: 21.5 GB, 21474836480 bytesbytes=B代表字節,bit=b代表位), 41943040 sectors(扇區)

heads:表示磁頭數。   sectors:扇區   track:磁道。cylinders:柱面。

磁盤的大小=一個柱面大小*柱面的總數=磁頭數量*每個磁道上的扇區數*一個扇區大小*柱面總數

文件儲存在硬盤上,硬盤的最小存儲單位叫做"扇區"Sector)。每個扇區儲存512字節(相當於0.5KB.操作系統讀取硬盤的時候,不會一個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次性讀取一個""block)。這種由多個扇區組成的"",是文件存取的最小單位。""的大小,最常見的是4KB,即連續八個 sector組成一個 block

磁盤正在使用(有掛載就表示正在使用)不能用不同的方式分區,需先卸載(umount).但用同一種分區方法時,當前設備是否在用不受影響.

查看文件系統磁盤使用情況: df  -Th  (-T  type  -h  human-readable)

[root@lbg udev]# df -Th

Filesystem     Type      Size  Used Avail Use% Mounted on

/dev/sda3      xfs        20G  3.3G   17G  17% /

devtmpfs       devtmpfs  478M     0  478M   0% /dev

tmpfs          tmpfs     493M     0  493M   0% /dev/shm

/dev/sr0       iso9660   4.3G  4.3G     0 100% /mnt/rhel

/dev/sda1      xfs       397M  146M  251M  37% /boot


磁盤分區步驟:

[root@lbg ~]# fdisk -l           --顯示已格式化的磁盤

[root@lbg ~]# ll /dev/sd*        ---顯示所有磁盤

通過上面兩個命令的對比可查看沒有分區的磁盤。

sdb分區:   fdisk   /dev/sdb

其中:d(刪除分區)  n(添加分區) p(打印現有分區表) q(退出不保存) w(保存並退出)

幫助(menu)

n  創建分區(new partition)

p  分區表信息(partition table)

q  quit

w  write

d-> delete

l--> 列出已知分區類型

Command (m for help): n            --添加分區

Partition type:

   p   primary (0 primary, 0 extended, 4 free)

   e   extended

其中 extended:是擴展分區,primary 是主分區.

其中給定分區大小時:+加單位就是容量,不加單位就是用柱面算.

Select (default p): p

Partition number (1-4, default 1): 1

Last sector, +sectors or +size{K,M,G} (2048-4194303, default 4194303): +1G

Partition 1 of type Linux and of size 1 GiB is set

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1         2097152     4194303     1048576   83  Linux

Select (default p): e       ----設置擴展分區,一般將剩下的所有容量都給擴展分區,故一直直接回車就行

Partition number (2-4, default 2): 

First sector (2099200-4194303, default 2099200): 

Using default value 2099200

Last sector, +sectors or +size{K,M,G} (2099200-4194303, default 4194303): 

Using default value 4194303

Partition 2 of type Extended and of size 1023 MiB is set

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4194303     1047552    5  Extended

Command (m for help): n       ----再添加新的分區--邏輯分區

Partition type:

   p   primary (1 primary, 1 extended, 2 free)

   l   logical (numbered from 5)                -----有了擴展分區后,再分區就有邏輯分區 

Adding logical partition 5

First sector (2101248-4194303, default 2101248): 

Last sector, +sectors or +size{K,M,G} (2101248-4194303, default 4194303): +500M

Partition 5 of type Linux and of size 500 MiB is set

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048     2099199     1048576   83  Linux

/dev/sdb2         2099200     4194303     1047552    5  Extended

/dev/sdb5         2101248     3125247      512000   83  Linux

刷新分區表:partx -a /dev/sdb

查看分區命令 fdisk -l /dev/sdb(從內存看 fdisk /dev/sdb(從磁盤里看) p查看的結果不同的話, partx -a /dev/sdb (刷新分區表a--add).不一致的原因可能是舊磁盤以前有分區表.


格式化步驟:

mkfs命令(make file system)格式化就是創建文件系統。(文件系統類型:6ext4 ,7xfs )

一個分區一個分區地格式化:

mkfs.ext4  /dev/sdb1  或者 mkfs -t ext4  /dev/sdb1                          --- (t--type)

創建文件系統相當於在物理分區制作了一層內容,用來記錄文件的存放位置等等這些信息。你會發現創建了文件系統的磁盤你還沒用空間就少了十幾M,,就是這個原因.

判斷格式化是否成功:

格式化后就可查看該塊設備信息:blkid, 有了該設備就說明格式化成功.沒格式化的不在其中顯示.(blkidblockid)

[root@lbg ~]# blkid

/dev/sda1: UUID="83d6abb5-1bda-497d-a33e-f11e601a6ff0" TYPE="xfs" 

/dev/sda2: UUID="957ffd57-d1fc-40d5-87c2-5f57f15d6a11" TYPE="swap" 

/dev/sda3: UUID="37765c8e-208a-4358-b643-7beeca05683c" TYPE="xfs" 

/dev/sdb1: UUID="3c914c37-dc34-4fcf-932d-f4ea7753d2dc" TYPE="xfs" 

/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"

 

掛載:

創建空目錄然后掛載mount /dev/sdb1  /mnt/cs (手動掛載臨時生效,重啟失效.)

再紅帽系統里有lost+found 文件夾說明掛載成功.或者直接mount查看是否掛載成功。

設置開機自動掛載:

掛載的本質是掛載設備上的文件系統,將掛載命令寫到下面兩種配置文件都可:

[root@lbg rhel]# vim /etc/rc.d/rc.local

[root@lbg rhel]# vim /etc/fstab 

/etc/rc.d/rc.local是操作系統啟動最后一個讀取的腳本文件,操作系統基本已經啟動了,命令寫在這里面,可以開機自動掛載.開機掛載,能掛,但是不太合適,可以在這里掛載鏡像,掛載磁盤,可能啟動軟件需要的服務需要用到磁盤中的東西,這時候就不合適了.

/etc/fstab 中內容大致如下:

UUID=37765c8e-208a-4358-b643-7beeca05683c      /      xfs     defaults        0 0

UUID=83d6abb5-1bda-497d-a33e-f11e601a6ff0      /boot   xfs     defaults        0 0

UUID=957ffd57-d1fc-40d5-87c2-5f57f15d6a11      swap  swap       defaults       0 0

/dev/sr0                     /mnt/rhel     iso9660     defaults       0 0

依次是:設備,掛載點,文件系統類型,文件系統掛載屬性(默認defaults),是否備份(0就行),是否進行文件系統檢查(0,不檢查就行,否則開機時間過長)0 ---不檢查  1 ---優先度高的檢查   2----優先度低的檢查

其中 UUid的值可以通過blkid查看.記着后面三個 defaults 0 0 .  /etc/fstab 里面掛載點有/boot,故開機運行時很早,專門用來做自動掛載./etc/rc.d/rc.local可以寫很多其他命令,比如啟動服務.掛載鏡像.


檢測/etc/fstab修改是否正確:

注意:vim  /etc/fstab.--系統重啟生效.若寫錯了,則系統無法正常開機,必須測,若寫錯了,則操作系統只能看,root用戶也無法改,檢測時  umount /dev/sdb1mount -a --檢測/etc/fatab是否正確.mount -a 是自動掛載 /etc/fstab 里面的東西,若無任何報錯輸出則表示/etc/fstab修改無問題。)


修復文件系統

#fsck   -a      /dev/sdb1        

#fsck   -y      /dev/sdb1

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM