Linux磁碟與文件系統管理(一)

来源:https://www.cnblogs.com/flashfish/archive/2019/04/19/10732406.html
-Advertisement-
Play Games

fdisk 常用的磁碟分區工具,受mbr分區表的限制,只能給小於2TB的磁碟劃分分區,如果使用fdisk對大於2TB的磁碟進行分區,雖然可以分區,但只能識別2T的空間,一般使用parted分區工具 -l # 顯示所有磁碟分區信息 Device # 分區名稱 Boot # 啟動分區,用*表示的是啟動分 ...


fdisk

  常用的磁碟分區工具,受mbr分區表的限制,只能給小於2TB的磁碟劃分分區,如果使用fdisk對大於2TB的磁碟進行分區,雖然可以分區,但只能識別2T的空間,一般使用parted分區工具

  -l  # 顯示所有磁碟分區信息

[root@puppet105 ~]# fdisk -l
Disk /dev/sda: 64.4 GB, 64424509440 bytes, 125829120 sectors    # 磁碟/dev/sda 的大小
Units = sectors of 1 * 512 = 512 bytes                  # 每個柱面大小512位元組
Sector size (logical/physical): 512 bytes / 512 bytes        # 每個扇區的位元組數
I/O size (minimum/optimal): 512 bytes / 512 bytes          # 每次讀寫的位元組數
Disk label type: dos
Disk identifier: 0x000a9f20

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 4196351 1048576 82 Linux swap / Solaris /dev/sda3 4196352 125829119 60816384 8e Linux LVM Disk /dev/mapper/centos_centos7-root: 62.3 GB, 62272831488 bytes, 121626624 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

     Device  # 分區名稱

  Boot    # 啟動分區,用*表示的是啟動分區

  Start    # 表示開始的柱面

  End    # 表示結束的柱面

  Blocks    # block塊數量

  Id      # 分區類型ID

  System    # 分區類型

  磁碟分區步驟

# 加了一塊20G的磁碟
[root@centos7 ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 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

#  查看分區前設備狀態

[root@centos7 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb

# 開始分區
[root@centos7 ~]# fdisk /dev/sdb        # 後面直接跟設備文件,或者-cu參數
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. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xfe05c2f7. Command (m for help): m             # 輸入m是幫助菜單 Command action a toggle a bootable flag           # 設置引導扇區 b edit bsd disklabel              # 編輯bsd捲標 c toggle the dos compatibility flag      # 設置dos相容扇區 d delete a partition                # 刪除一個分區 g create a new empty GPT partition table    # 創建空白gpt分區表 G create an IRIX (SGI) partition table      # 創建IRIX分區表 l list known partition types            # 查看分區類型對應列表編號 m print this menu                  # 列印幫助菜單 n add a new partition                # 添加一個新分區 o create a new empty DOS partition table     # 創建新的DOS分區表 p print the partition table            # 列印分區表 q quit without saving changes        # 不保存退出 s create a new empty Sun disklabel      # 創建新的空sun捲標 t change a partition's system id        # 更改分區系統ID u change display/entry units          # 改變顯示的單位 v verify the partition table          # 驗證分區表 w write table to disk and exit          # 寫入磁碟列表並退出 x extra functionality (experts only)      # 額外功能 Command (m for help): n                # 創建一個新分區 Partition type: p primary (0 primary, 0 extended, 4 free)  # 主分區,只能創建4個,第五個必須為擴展分區 e extended                      # 擴展分區 Select (default p): p                  # 創建主分區標識 Partition number (1-4, default 1): 1          #編號(1-4) First sector (2048-41943039, default 2048):     # 起始位置,直接回車,預設是1 Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G # 設置主分區大小 Partition 1 of type Linux and of size 5 GiB is set Command (m for help): n              # 創建一個新分區 Partition type: p primary (1 primary, 0 extended, 3 free) e extended                    # 創建一個擴展分區 Select (default p): e Partition number (2-4, default 2): 2        # 編號2 First sector (10487808-41943039, default 10487808): Using default value 10487808 Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +5G  # 也是5G的容量 Partition 2 of type Extended and of size 5 GiB is set Command (m for help): n              # 創建一個新分區 Partition type: p primary (1 primary, 1 extended, 2 free)  # 此時因為創建了擴展分區,所以只剩下主分區和邏輯分區了 l logical (numbered from 5) Select (default p): l                # 創建邏輯分區 Adding logical partition 5              # 邏輯分區編號必須是從5開始,預設的就是5 First sector (10489856-20973567, default 10489856): Using default value 10489856 Last sector, +sectors or +size{K,M,G} (10489856-20973567, default 20973567): +2G  # 給2G的容量 Partition 5 of type Linux and of size 2 GiB is set Command (m for help): p                # 列印創建的分區列表 Disk /dev/sdb: 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: 0xfe05c2f7 Device Boot Start End Blocks Id System /dev/sdb1 2048 10487807 5242880 83 Linux /dev/sdb2 10487808 20973567 5242880 5 Extended /dev/sdb5 10489856 14684159 2097152 83 Linux Command (m for help): w                # 保存 The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@centos7 ~]# ls /dev/sdb*            # 查看設備狀態 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb5 [root@centos7 ~]# partprobe /dev/sdb        # 通知內核分區表已經更改 [root@centos7 ~]# mkfs.ext4 /dev/sdb1        #格式化文件系統 mke2fs 1.42.9 (28-Dec-2013)   Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 327680 inodes, 1310720 blocks 65536 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1342177280 40 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Allocating group tables: done Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done [root@centos7 ~]# tune2fs -c 0 -i 0 /dev/sdb1    # 此命令可以米面磁碟過載自動檢查 tune2fs 1.42.9 (28-Dec-2013) Setting maximal mount count to 1 [root@centos7 ~]# df -h            # 格式化後的磁碟需要掛載才能使用,此處未顯示已經創建的磁碟 Filesystem Size Used Avail Use% Mounted on /dev/sda3 98G 1.7G 97G 2% / devtmpfs 901M 0 901M 0% /dev tmpfs 911M 0 911M 0% /dev/shm tmpfs 911M 9.5M 902M 2% /run tmpfs 911M 0 911M 0% /sys/fs/cgroup /dev/sda1 1014M 135M 880M 14% /boot tmpfs 183M 0 183M 0% /run/user/0 [root@centos7 ~]# mount /dev/sdb1 /mnt    # 掛載磁碟分區 [root@centos7 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 98G 1.7G 97G 2% / devtmpfs 901M 0 901M 0% /dev tmpfs 911M 0 911M 0% /dev/shm tmpfs 911M 9.5M 902M 2% /run tmpfs 911M 0 911M 0% /sys/fs/cgroup /dev/sda1 1014M 135M 880M 14% /boot tmpfs 183M 0 183M 0% /run/user/0 /dev/sdb1 4.8G 20M 4.6G 1% /mnt      # 磁碟已經掛載上去了    [root@centos7 ~]# vi /etc/fstab      # 開機啟動有兩種方式,此為第一種,另外一種 echo "mount /dev/sdb1 /mnt" >>/etc/rc.local # # /etc/fstab # Created by anaconda on Fri Oct 26 21:32:51 2018 # # 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 # UUID=fc662da3-4f5b-480b-bae9-cc9c8698742a / xfs defaults 0 0 UUID=e1b67cc9-08ff-47e7-b1e9-3ce2d9ee5eb6 /boot xfs defaults 0 0 UUID=47b26d55-1602-48e1-adba-91fe4f420b03 swap swap defaults 0 0 /dev/sdb1 /mnt ext4 defaults 0 0

  # 關於LVM進行分區,會單獨寫博文

  fdisk非互動式分區(批量創建)

[root@centos7 ~]# fdisk /dev/sdb<<EOF
> n
> p
> 3
> 
> +2G
> p
> w
> EOF
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): Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): Partition number (3,4, default 3): First sector (20973568-41943039, default 20973568): Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): Partition 3 of type Linux and of size 2 GiB is set

Command (m for help): 
Disk /dev/sdb: 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: 0xfe05c2f7

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048    10487807     5242880   83  Linux
/dev/sdb2        10487808    20973567     5242880    5  Extended
/dev/sdb3        20973568    25167871     2097152   83  Linux
/dev/sdb5        10489856    14684159     2097152   83  Linux

Command (m for help): 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.

 

partprobe

  在硬碟分區發生改變時,更新Linux內核中的硬碟分區表數據。不需要重啟系統就能生效

tnue2fs

  調整或者查看ex2/ex3/3x4文件系統的參數,如可以調整文件系統開機自檢周期,用的較少

  -c  # 設置強制自檢的掛載次數,沒掛載一次計數就會加1,超過次數就會強制自檢,設置0或-1,此功能關閉

  -i  # 強制自檢的時間間隔

  -l  # 查案文件系統信息

 

parted

 大於2TB磁碟的分區命令,需要將磁碟轉換為GPT格式

   -l  # 小時需哦有磁碟分區的信息

    -h  # 查看幫助

[root@centos7 ~]# parted 
GNU Parted 3.1    # 版本號
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) h           # 查看幫助 
align
-check TYPE N  #檢查磁碟分區,type分為min/opt,N表示磁碟分區號
mklabel,mktable LABEL
-TYPE # 創建分區表 table)     mkpart PART-TYPE [FS-TYPE] START END # 創建分區 name NUMBER NAME # 為分區命名 print [devices|free|list,all|NUMBER] # 顯示分區表信息,簡寫p quit # 退出 resizepart NUMBER END # 重設分區大小 rm NUMBER # 刪除編號number的分區 select DEVICE #選擇要編輯的設備 set NUMBER FLAG STATE # 改變分區標誌 toggle [NUMBER [FLAG]] # 設置分區標誌 unit UNIT   # 設置預設單位 copyright information of GNU Parted (parted) quit

 

  分區步驟,本次使用20GB來做演示

[root@centos7 ~]# ls /dev/sd*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb
[root@centos7 ~]# parted /dev/sdb      # 開始分區,互動式
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt              # 為sdb磁碟創建GPT分區表,大於2T必須執行此步驟,fdisk 是mdos分區表

(parted) mkpart primary 0 5G    # 創建主分區
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore             # 忽略掉                                            
(parted) p                            #顯示分區表                                   
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  5000MB  5000MB               primary    #主分區創建完畢,創建完成之後系統會自動識別,

(parted) mkpart logical 5G 10G                  # 創建邏輯分區
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 10.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      17.4kB  5000MB  5000MB               primary
 2      5001MB  10.0GB  5000MB               logical

(parted) quit                                                             
Information: You may need to update /etc/fstab.

[root@centos7 ~]# ls /dev/sd*        # 查看分區的設備
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sdb  /dev/sdb1  /dev/sdb2

# 後面的格式化分區,掛載,開機自動掛載和fdisk分區步驟一樣,因為parted在創建分區時,會自動讓內核識別,所以不用使用partprobe命令


  # fdisk非互動式分區(批量創建)

  parted /dev/sdb mklabel gpt yes

  parted /dev/sdb mkpart primary 0 5G

  parted /dev/sdb p

 

mkfs

  創建Linux文件系統,只有格式化創建文件系統後,才能存儲數據

  -t  #指定要創建的文件系統類型

  -c  # 創建文件系統時檢查磁碟壞塊

  -v  # 顯示詳細信息

  

[root@centos7 ~]# mkfs    # 此命令是一個前端命令,會通過-t參數調用mkfs.fstype 因此可以直接使用mkfs.ext4創建
mkfs         mkfs.cramfs  mkfs.ext3    mkfs.minix   
mkfs.btrfs   mkfs.ext2    mkfs.ext4    mkfs.xfs  

 

dumpe2fs

  用於導出ext2/ext3/ext4文件系統內部的相關信息,如,文件系統的組成bao包含超級塊,塊組,inode,bock等信息

  -b  # 列印文件系統中預留的塊信息

  -h  # 進現實超級塊信息

  -i  # 從指定的文件系統影像文件中讀取文件的系統信息

  -x  # 以16進位格式列印信息塊成員

resize2fs

  用於擴容或收縮未掛載的ext2,3,4文件系統,在2.6內核版本或者更高,還支持線上擴容已掛在的文件系統,常用開針對LVM擴容後的分區使用,對於fdisk和parted應事先規劃好

  -p  # 列印完成任務的進度條

  -r  # 強制執行操作

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在設計界面的時候,不管是在Web端,還是在Winform端,或者是WPF或者移動界面等應用上,我們對界面的組織佈局,一直是比較有趣的話題,而組織界面的好壞從用戶的感受來看,可以提供程式可使用性高低,也體現了開發者的開發界面的功力。良好的界面佈局,可以使得我們組織內容更加合理,也更加美觀。本篇隨筆主要... ...
  • 前言 之前繼續在學習多線程方面的知識,忽然這兩天看到博問中有個園友問到如何在.net core類庫中讀取配置文件,當時一下蒙了,這個提的多好,我居然不知道,於是這兩天瞭解了相關內容才有此篇博客的出現,正常來講我們在應用程式目錄下有個appsettings.json文件對於相關配置都會放在這個json ...
  • 第一篇:https://www.cnblogs.com/zgqys1980/p/4047315.html; 第二篇:https://www.cnblogs.com/shenbing/p/5394228.html 第三篇:https://blog.csdn.net/ydm19891101/articl ...
  • 1. 啟動應用程式日誌配置 修改Program.cs,在WebHostBuilder構建時配置日誌 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(ar ...
  • list : ls 目錄: 文件,路徑映射. ls : -l : lang 長格式, 顯示完整信息. 文件類型: -: 普通文件(f) d: 目錄文件 b: 塊設備文件(block) c: 字塊設備文件(charact) l: 符號鏈接文件(symbolic link file) p: 命令管道文件 ...
  • echo:列印,或者直接輸出指定的字元串 語法:echo (選項) (參數) 選項:/a: 發出警告聲 /b: 刪除前一個字元 /c: 最後不加上換行符號 /f: 換行但游標仍舊停留在原來的位置 /n: 換行且游標移至行首 /r: 游標移至行首,但不換行 /t: 插入tab /v: 與\f相同 // ...
  • fsck 檢查並修複文件系統中的錯誤,即針對有問題的系統或磁碟進行修複,類似的命令還有e2fsck,修複前有以下要求: 1)文件系統必須是卸載狀態 2)不要對正常的分區使用fsck,不加參數的情況下,相當於fsck -As的功能 -a # 自動修複文件系統,不詢問任何問題 -s # 按順序檢查多個文 ...
  • 初識分散式文件系統FastDFS… 1.分散式與集群的區別 區別:集群是個物理形態,分散式是個工作方式。只要是一堆機器,就可以叫集群,他們是不是一起協作著幹活,這個誰也不知道;一個程式或系統,只要運行在不同的機器上,就可以叫分散式,一般系統現在都是前後端分離,C/S架構、B/S架構,一般服務端部署在 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...