磁盤分區和文件系統管理


在linux系統中,如果需要在某個磁盤上存儲數據。需按照以下流程:

  1. 將磁盤進行分區
  2. 創建文件系統
  3. 將文件系統掛載到目錄下
  4. 在安裝linux系統后需要添加更多的交換空間,可以通過添加一個交換分區或添加一個交換文件來實現。
磁盤分區和格式化簡介
磁盤分區:是指對硬盤物理介質的邏輯划分。將磁盤分成多個分區,不僅有利與對文件的管理,而且不同的分區可以建立不同的文件系統,這樣才能在不同的分區上安裝不同的操作系統。

分區就是磁盤的"段落",如果用戶希望在計算機上安裝多個操作系統,將需要更多的分區。而不同的操作系統原則上才有不同的文件系統。如果幾個操作系統都支持相同的文件系統,通常為了避免在一個分區下有相同的系統目錄,而將條目安裝在不同的磁盤分區上。在linux系統中,情況又有所不同,它本身又需要更多的磁盤分區,比如根分區"/"和swap分區。

磁盤分區一共有三種

  • 主分區
  • 擴展分區
  • 邏輯驅動器

擴展分區只不過是邏輯驅動器的容器,實際上只有主分區和邏輯驅動器才能進行數據存儲。在一塊磁盤上最多之內有四個主分區,可以另外建立一個擴展分區來代替四個主分區中的一個,任何在擴展分區下可以建立更多的邏輯驅動器。

在計算機啟動時,首先讀取MBR中的硬盤分區表,從中選擇唯一一個具有活動標記的分區,引導該分區上的操作系統。無論有幾個主分區,其中必須由一個分區是活動的。 不同的操作系統具有不同的磁盤分區工具,windowns系統下非常有名的分區工具是fdisk,在linux系統中進行分區可以使用fdisk和parted等命令,或者使用相同功能的圖像界面程序。

格式化:對磁盤分區進行初始化的一種操作(創建文件系統)。簡單的說,就是把一張空白的磁盤划分成一個個小區域並編號,供計算機存儲和讀取數據使用。這種操作通常會導致現有的分區中所有的數據被清除。所以在此之前一定要對數據進行備份。

格式化數字磁盤中建立磁道和扇區,建立好之后,計算機才可以使用磁盤來存儲數據。格式的動作通常是在磁盤的開端寫入啟動扇區的數據、在根目錄記錄磁盤卷標、為文件分配表保留一些空間,以及檢查磁盤上是否有損壞的扇區,如果有的話嘖嘖文件分配表標上損毀的記號,表示該扇區並不用來存儲數據。

每個主分區和邏輯驅動器都會被存儲為一個識別文件系統的附加信息。操作系統能通過這些信息非常容易地識別和確認應該使用哪個分區,不能識別的分區將會被忽略。

分區只是對磁盤上的磁盤空間進行了保留,還不能直接使用,在此之后分區必須要進行格式。在windowns系統下可以通過資源管理器下的文件菜單或者format程序來執行,而在linux系統中大多使用mkfs命令來完成。

linux系支持不同的文件系統,目前應用最廣泛的就是xfs和ext4

linux磁盤分區

使用fdisk命令可以用來對磁盤進行分區,它采用傳統的問答式界面,除此之外還可以用來查看磁盤分區的詳細信息,也能為每個分區指定分區的類型。

命令語法:fdisk [選項] [設備]

選項 含義
-b<扇區大小> 指定磁盤的扇區大小,有效的值是512、1024、2048或4096
-l 列出指定磁盤的分區表信息
-s<分區> 顯示分區大寫,單位為塊
-C<柱面數> 指定柱面數
-H<磁頭數> 指定磁頭數
-S 指定磁盤每磁道的扇區數

在fdisk命令的交互式操作方式下有許多子命令

子命令 功能
m 顯示所以能在fdisk中使用的子命令
p 顯示磁盤分區信息
a 顯示磁盤啟動分區
n 創建新的分區
e 創建擴展分區
p 創建主分區
t 更改分區的系統ID(也就是分區類型ID)
d 刪除磁盤分區
q 退出fdisk,不保存磁盤分區設置
l 列出已知的分區類型
v 驗證分區表
w 保存磁盤分區設置並退出fdisk

下面以實例方式講述在linux系統磁盤/dev/sda中創建、刪除、查看分區和轉換分區類型

1.進入fdisk界面,顯示磁盤分區信息

[root@localhost ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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: 0x000ba4d2 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 62914559 30407680 8e Linux LVM 

磁盤分區的表示方法如下:

  • 設備:磁盤分區設備名,比如/dev/sda1
  • Boot:表示引導分區,在上面的例子中/dev/sda1是引導分區
  • Star:表示一個分區的開始扇區
  • End:表示一個分區的結束扇區
  • Blocks:表示分區容量,單位是塊,默認一個塊是1KB
  • Id:一個兩位的十六進制,表示分區類型
  • System:ID所定義的分區類型

2.創建和刪除主分區 在創建磁盤分區時,需要指定結束扇區。

格式 功能
n 使用結束扇區,n代表數字
+n 在開始扇區的基礎上,加上n個扇區,n代表數字
+nM 在開始扇區的基礎上,加上nMB容量,n代表數字。還可以使用K、G
回車鍵 使用默認的扇區,也就是這個分區的結束扇區就是最后一個扇區

3.創建擴展分區和邏輯驅動器

4.查看並轉換分區類型

ID 分區類型 描述
83 linux linux普通分區
fd linux raid自動 RAID使用的分區
8e linux LVM LVM使用的分區
82 linux swap/solaris swap分區
[root@localhost ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): l  0 Empty  24 NEC DOS  81 Minix / old Lin bf Solaris  1 FAT12  27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-  2 XENIX root  39 Plan 9  83 Linux c4 DRDOS/sec (FAT-  3 XENIX usr 3c PartitionMagic  84 OS/2 hidden C: c6 DRDOS/sec (FAT-  4 FAT16 <32M  40 Venix 80286  85 Linux extended c7 Syrinx  5 Extended  41 PPC PReP Boot  86 NTFS volume set da Non-FS data  6 FAT16  42 SFS  87 NTFS volume set db CP/M / CTOS / .  7 HPFS/NTFS/exFAT 4d QNX4.x  88 Linux plaintext de Dell Utility  8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt  9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access a OS/2 Boot Manag 50 OnTrack DM  94 Amoeba BBT e3 DOS R/O b W95 FAT32  51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/ 10 OPUS  55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b 11 Hidden FAT12  56 Golden Bow a8 Darwin UFS f1 SpeedStor 12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor 14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary 16 Hidden FAT16  63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS 17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE 18 AST SmartSleep  65 Novell Netware b8 BSDI swap fd Linux raid auto 1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep 1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT 1e Hidden W95 FAT1 80 Old Minix Command (m for help): t Partition number (1,2, default 2): 2 Hex code (type L to list all codes): 6 WARNING: If you have created or modified any DOS 6.xpartitions, please see the fdisk manual page for additionalinformation. Changed type of partition 'Linux LVM' to 'FAT16' Command (m for help): p Disk /dev/sda: 32.2 GB, 32212254720 bytes, 62914560 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: 0x000ba4d2 Device Boot Start End Blocks Id System /dev/sda1 *  2048  2099199  1048576  83 Linux /dev/sda2  2099200  62914559  30407680  6 FAT16 

5.保存分區設置信息,並退出fdisk

Command (m for help): w 

6.在非交互式界面下顯示當前磁盤的分區信息

[root@localhost ~]# fdisk -l /dev/sda 

7.查看分區情況

使用partprobe更新新分區表,使內核識別分區

[root@localhost ~]# partprobe 

使用以下命令查看磁盤分區情況

[root@localhost ~]# ls /dev/sda* /dev/sda /dev/sda1 /dev/sda2 
創建文件系統

linux主流文件系統類型

  • XFS
  • ext4
  • JFS
  • ReiserFS

文件系統:是指文件在磁盤上的存儲方法好排列序列。在linux系統中最重要的特征之一就是支持多種文件系統,這樣它就更加靈活,可以和其他操作系統共存。

XFS:一款非常優秀的日志文件系統。由SGI於20世紀90年代初開發的一款開源的全64位、快速、穩固的日志文件系統。

ext4:它是一種針對ext3文件系統的擴展日志式文件系統。linux內核自2.6.28開始正式支持ext4

JFS:是一種提供日志的字節級文件系統。該文件系統 主要是為了滿足服務器的高吞吐量和可靠性需求而設計開發的。與非日志文件系統相比,它的突出優點是快速重啟能力,使用數據庫日志處理技術,JFS能在幾秒或幾分鍾內把文件系統恢復到一致狀態。而在非日志文件系統中,文件恢復可能划分幾小時甚至幾天。JFS的缺點是系統性能上會有一定損失,系統資源占有率偏高。

ReiserFS:使用特殊的、優化的平衡樹來組織所有的文件系統數據,根據需要動態第分配索引節,而不必在文件系創建時建立固定的索引節。缺點是每升級一個版本都要將磁盤程序格式化一次,而且它的安全性和穩定性與ext3相比有一定的差距。還不能正確處理超長的文件目錄。

命令語法:mkfs [選項] [設備]

選項 含義
-t<文件系統類型> 指定文件系統類型
-v 顯示詳細信息

例如:使用mkfs命令格式化/dev/sda3分區,創建xfs文系統系統

[root@localhost ~]# mkfs -t xfs /dev/sda3 
掛載和卸載文件系統

使用mount命令可以將指定分區、光盤、U盤或者是移動硬盤掛載到linux系統的目錄下

命令語法:mount [選項] [設備] [掛載目錄]

選項 含義
-t<文件系統類型> 指定設備的文件系統類型,如xfs、autofs、cifs、ext、ext2、ext3、ext4、hfs、iso9660、jfs、msdos、nfs、nfs4、reiserfs、smbfs、tmpfs、vfat、xfs等
-a 掛載/etc/fstab文件系統中定義的所有文件系統
-o<掛載選項> 指定掛載文件系統時的掛載選項,有些掛載選項也可以用/etc/fstab文件中
-r 以只讀方式掛載文件系統,相當於-o ro選項
-w 以讀寫方式掛載文件系統,相當於-o rw選項
-L<卷標> 以卷標方式掛載文件系統
-U<UUID> 以UUID方式掛載文件系統
-n 不把掛載信息記錄在/etc/mtab文件中

mount目錄常用掛載選項如下

掛載選項 描述
defaults 相當於rw、suid、dev、exec、auto、nouser、async、relatime掛載選項
ro 以只讀方式掛載
rw 以讀寫方式掛載
nouser 禁止普通用戶(即非root]掛載文件系統
user 允許普通用戶掛載文件系統
users 允許每一位用戶掛載和卸載文件系統
remount 嘗試重新掛載一個已經掛載的文件系統
owner 如果用戶是設備的所有者,允許一個普通的用戶掛載該文件系統
exec 在掛載的文件系統上允許直接執行二進制文件
noexec 在掛載的文件系統上不允許之間執行任何二進制文件
atime 在文件系統上更新inode訪問時間
noatime 在文件系統上不更新inode訪問時間
owner 如果用戶是普通所有者,允許普通用戶掛載文件系統
group 如果用戶的其中一個組群匹配設備的組群,則允許普通的用戶掛載文件系統
auto 能夠使用-a選項掛載
noauto 只能顯式掛載(使用-a選項將不會導致文件系統被掛載)
suid 允許設置用戶標識或設置組標識符位才能生效
nosuid 不允許設置用戶標識或設置組標識符位才能生效

例子:掛載磁盤分區/dev/sda5到/mnt/www目錄中

[root@localhost ~]# mkdir /mnt/www [root@localhost ~]# mount -t xfs /dev/sda5 /mnt/www 

以只讀方式掛載/dev/sda5磁盤分區到/mnt/www

[root@localhost ~]# mount -t xfs -o ro /dev/sda5 /mnt/www 
卸載文件系統

命令語法:umount [選項] [設備|掛載目錄]

選項 含義
-a 卸載/etc/mtab中記錄的所有文件系統
-n 卸載時不要將信息存入/etc/mtab文件中
-r 若無法成功卸載,則嘗試以只讀的方式重新掛載該文件系統
-f 強制卸載文件系統
-t<文件系統類型> 只卸載指定類型文件系統

例如:卸載/mnt/www目錄所在的磁盤分區文件系統

[root@localhost ~]# umount /mnt/www 
查看磁盤分區掛載情況

命令語法:df [選項] [文件]

選項 含義
-a 顯示所有文件系統,包括虛擬文件系統
-i 顯示inode信息而不是塊使用量
-k 以KB為單位顯示(即塊大小為1KB)
-x<文件系統類型> 只顯示文件系統不是指定類型的信息
-T 顯示文件系統類型
--sync 取得使用量數據前先進行同步動作
--no-sync 取得使用量數據前不進行同步動作(默認)
-t<文件系統類型> 只顯示指定文件系統類型
-l 只顯示本機文件系統
-h 以可讀性較高的方式顯示信息
-H 與-h選項相同,但是在計算時以1000字節為換算單位而不是1024字節

例如:在顯示磁盤空間使用情況時也顯示文件系統的類型

[root@localhost ~]# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/mapper/centos-root xfs 28289540 1252916 27036624 5% / devtmpfs devtmpfs 485780 0 485780 0% /dev tmpfs tmpfs 497948 0 497948 0% /dev/shm tmpfs tmpfs 497948 7824 490124 2% /run tmpfs tmpfs 497948 0 497948 0% /sys/fs/cgroup /dev/sda1 xfs 1038336 135376 902960 14% /boot tmpfs tmpfs 99592 0 99592 0% /run/user/0 

查看/dev/sda2磁盤分區的磁盤空間使用情況

[root@localhost ~]# df /dev/sda2 Filesystem 1K-blocks Used Available Use% Mounted on devtmpfs 485780 0 485780 0% /dev 
開機自動掛載文件系統

只有將某個分區或是設備進行掛載后才能使用,但是計算機重啟后又需要重新掛載,這時通過修改/etc/fstab文件可以實現開機自動掛載文件系統。

  • /etc/fstab

下面進行詳細分析

[root@localhost ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Sun Jun 9 14:17:14 2019 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=3a97ef4b-da93-4fb3-bc6d-8a674df636cf /boot xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 
  1. 設備:第一列的內容是設備,可以使用設備名和UUID來指定設備
  2. 掛載目錄:第二列是設備的掛載目錄(掛載點).
  3. 文件系統類型:第三列指定了設備和磁盤分區的文件系統類型
  4. 掛載選項:第四列列出了對於每一個設備或者磁盤分區的所有掛載選項。
  5. 儲選項:第五列是dump選項,用於檢查文件系統並用一個數字來決定該我呢見系統是否需要備份。如果它是0,dump將會忽略該文件系統,不做備份。
  6. 文件系統檢查選項:第六列是fsck選項,是通過第六列中的數字來決定以何種順序來檢查文件系統。如果他是0,fsck將不會檢查該文件系統。
設置開機自動掛載文件系統
  1. 使用設備名:編輯/etc/fstab文件,在該文件末尾添加下列內容
/dev/sda5    /mnt/www    xfs     defaults        1 2 
  1. 使用UUID(Universally Unique Identifier,全局唯一標識符) 其由以下幾部分組合:當前日期和時間、時鍾序列、全局唯一的IEEE機器識別號
[root@localhost ~]# ls -l /dev/disk/by-uuid total 0 lrwxrwxrwx. 1 root root 10 Jul 26 21:06 14b6321d-b8fc-499e-ab6b-13680c75774d -> ../../dm-0 lrwxrwxrwx. 1 root root 9 Jul 26 18:48 2018-11-26-14-22-58-00 -> ../../sr0 lrwxrwxrwx. 1 root root 10 Jul 26 21:06 3a97ef4b-da93-4fb3-bc6d-8a674df636cf -> ../../sda1 lrwxrwxrwx. 1 root root 10 Jul 26 21:06 999789a3-908d-4f83-b71d-e518109e64ae -> ../../dm-1 

然后編輯/etc/fstab文件,在該文件末尾添加下列內容

UUID=3a97ef4b-da93-4fb3-bc6d-8a674df636cf /boot xfs defaults 1 2 
  1. 使用卷標
  2. 先使用以下命令查看磁盤分區/dev/sda5
[root@localhost ~]# xfs_admin -l /dev/sda5 label = "www" 

查出卷標后,編輯/etc/fstab文件

LABEL=www      /mnt/www    xfs     defaults        1 2 

為xfs文件系統/dev/sda5設置卷標使用命令xfx_admin -L www /dev sda5

為ext4文件系統/dev/sda6設置卷標使用命令e2label /dev/sda6 ftp

使用交換空間
使用交換分區
  1. 添加交換分區
  • 創建磁盤分區
[root@localhost ~]# fdisk -l /dev/sda5 
  • 創建交換分區:使用mkswap命令可以用來將磁盤分區或文件設置為linux系統的交換分區 假設將分區/dev/sda5創建為交換分區,在shell提示下以root用戶身份輸入以下命令
[root@localhost ~]# mkswap /dev/sda5 [root@localhost ~]# free 
  • 啟用交換分區:使用swapon命令
[root@localhost ~]# mkswap /dev/sda5 
  • 確認已經啟用交換分區
[root@localhost ~]# cat /proc/swaps 
  • 編輯/etc/fstab文件 如果需要在系統啟動引導時啟用交換分區,編輯/etc/fstab文件添加以下內容,然后在系統下次引導時就會啟用新建的交換分區。
/dev/sda5    swap    swap    defaults        0 0 
  1. 刪除交換分區
  • 禁用交換分區:使用swapoff命令可以用來禁用linux系統的交換分區 在shell提示下以root用戶身份輸入以下命令禁用交換分區(這里的交換分區就是/dev/sda5)
[root@localhost ~]# swapoff /dev/sda5 
  • 編輯/etc/fstab文件 目的是讓系統在下次啟動時,不會啟用交換分區
/dev/sda5    swap    swap    defaults        0 0 
使用交換文件
  1. 添加交換文件
  • 創建/swapfile文件 例如:在shell提示下以root用戶身份輸入以下命令創建/swapfile文件,其中的bs表示塊大小。
[root@localhost ~]# dd if=/dev/zero of=/swapfile bs=1G count=1 1+0 records in 1+0 records out 1073741824 bytes (1.1 GB) copied, 24.3387 s, 44.1 MB/s [root@localhost ~]# ls -l /swapfile -rw-r--r--. 1 root root 1073741824 Jul 26 23:29 /swapfile 
  • 創建交換文件
[root@localhost ~]# mkswap /swapfile Setting up swapspace version 1, size = 1048572 KiB no label, UUID=a26a836d-1f10-4fc5-9c83-914dc6da2fc0 
  • 啟用交換文件
[root@localhost ~]# swapon /swapfile swapon: /swapfile: insecure permissions 0644, 0600 suggested. 
  • 查看交換文件是否啟用
[root@localhost ~]# free total used free shared buff/cache available Mem: 995896 75484 825060 860 95352 782896 Swap: 3145720 71168 3074552 [root@localhost ~]# cat /proc/swaps Filename Type Size Used Priority /dev/dm-1 partition 2097148 71168 -2 /swapfile file 1048572 0 -3 
  • 編輯/etc/fstab文件(目的是讓系統下此重啟后會自動啟用新建的交換文件)
/swapfile   swap     swap     defaults  0 0 
  1. 刪除交換文件
  • 禁用交換文件
[root@localhost ~]# swapoff /swapfile [root@localhost ~]# free total used free shared buff/cache available Mem: 995896 75012 824612 860 96272 782912 Swap: 2097148 70912 2026236 
  • 刪除/swapfile文件
[root@localhost ~]# rm -rf /swapfile 
  • 編輯/etc/fstab文件(目的是讓系統下次啟動時不啟用交換文件。
/swapfile    swap     swap     defaults  0 0 

摘自:《Linux實用教程》人民郵電出版社出版發行 於岳編著


免責聲明!

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



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