Linux磁碟分區、格式化、掛載

来源:https://www.cnblogs.com/liugp/archive/2022/06/27/16417652.html
-Advertisement-
Play Games

一、前期準備 測試環境:VMware Workstation / centos8 1)增加一塊磁碟 2)查看新增磁碟(lsblk),發現沒找到新增的磁碟 3)解決查不到新增磁碟問題 重新掃描SCSI匯流排添加設備, $ echo "- - -" > /sys/class/scsi_host/host0 ...


目錄

一、前期準備

測試環境:VMware Workstation / centos8

1)增加一塊磁碟

2)查看新增磁碟(lsblk),發現沒找到新增的磁碟

3)解決查不到新增磁碟問題

重新掃描SCSI匯流排添加設備,

$ echo "- - -" > /sys/class/scsi_host/host0/scan
$ echo "- - -" > /sys/class/scsi_host/host1/scan
$ echo "- - -" > /sys/class/scsi_host/host2/scan

上面的host0/host1/host2主要還得看機器,可能數量會有不一樣。

刷完就可以看到新增的那塊磁碟了

二、分區

1)簡介

  • 在 Linux 中規定,每一個硬碟設備最多能有4個主分區(其中包含擴展分區)構成,任何一個擴展分區都要占用一個主分區號碼,也就是在一個硬碟中,主分區和擴展分區一共最多是 4個
  • 主分區可以馬上被使用但不能再分區。擴展分區必須再進行分區後才能使用,也就是說它必須還要進行二次分區。那麼由擴充分區再分下去的是就是邏輯分區(logical partion),況且邏輯分區沒有數量上限制
  • Linux 規定了主分區(或者擴展分區)占用 1 至 16 號碼中的前 4 個號碼。以第一個 IDE 硬碟為例說明,主分區(或者擴展分區)占用了 sda1、sda2、sda3、sda4,而邏輯分區占用了 sda5 到 sda16 等 12 個號碼。
  • 一個扇區是512位元組,其中有64個位元組存儲的是分區表,一條分區信息占16個位元組,因此磁碟最多只能分四個分區,這時候就有了擴展分區。
  • 擴展分區可以被繼續劃分為多個邏輯分區,邏輯分區是可以進行格式化的。擴展分區把邏輯分區的分區信息在擴展分區中找了一個位置給存起來。假如說p4擴展分區劃分了三個邏輯分區那麼第1個邏輯分區命名為sda5、第2個為sda6、第3個sda7,以此類推。一個磁碟被分為四個分區,第四個分區被設置為擴展分區,第一個邏輯分區為sda5。總結一下,就是不論磁碟有幾個主分區,第一個邏輯分區一定是從sda5開始。

2)fdisk 對磁碟進行分區

[root@centos8-nat-168-182-152 ~]# fdisk /dev/sdb //對sdb磁碟進行分區

Welcome to fdisk (util-linux 2.32.1).
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.
Created a new DOS disklabel with disk identifier 0x72914843.

Command (m for help): m                        //輸出幫助信息

Help:

  DOS (MBR)
   a   toggle a bootable flag                 //設置啟動分區
   b   edit nested BSD disklabel              //編輯分區標簽
   c   toggle the dos compatibility flag      //flag

  Generic
   d   delete a partition                    //刪除一個分區
   F   list free unpartitioned space         //列出分區類型
   l   list known partition types            //輸出幫助信息
   n   add a new partition                   //建立一個新的分區
   p   print the partition table             ///列印分區表
   t   change a partition type               //改變分區的ID
   v   verify the partition table            //檢查驗證分區表
   i   print information about a partition   

  Misc
   m   print this menu
   u   change display/entry units
   x   extra functionality (experts only)

  Script
   I   load disk layout from sfdisk script file
   O   dump disk layout to sfdisk script file

  Save & Exit
   w   write table to disk and exit
   q   quit without saving changes

  Create a new label
   g   create a new empty GPT partition table
   G   create a new empty SGI (IRIX) partition table
   o   create a new empty DOS partition table
   s   create a new empty Sun partition table


Command (m for help): n                  
Partition type 
   p   primary (0 primary, 0 extended, 4 free)     //p是主分區
   e   extended (container for logical partitions) //e是擴展分區
Select (default p): p
Partition number (1-4, default 1): 1               //定義分區數量   --主分區最多只能有四個
First sector (2048-16777215, default 2048):        //表示起始扇區;預設從第2048塊扇區開始是因為,由於EFI的興起,要給EFI 代碼留磁碟最開始的1M空間.
Last sector, +sectors or +size{K,M,G,T,P} (2048-16777215, default 16777215): +1024M //此處可直接輸入柱面號碼,但需要你自己計算分區大小,也可直接用+..M(如上),讓系統自己分配柱面號碼。

Created a new partition 1 of type 'Linux' and of size 1 GiB.  //這裡就為此分區分配了1G的空間

Command (m for help): w  //保存剛纔的配置信息。
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

查看(fdisk -l或者lsblk)

註意

上面的分區只適用於磁碟小於2T,大於2T需要用parted來分區

三、磁碟格式化

格式化:指將分區格式化成不同的文件系統。

文件系統:指操作系統用於明確存儲設備或分區上的文件的方法和數據結構:即在存儲設備上組織文件的方法。

註意

但是當你在格式化的時候,有可能找不到這個分區。這是因為Linux沒有把分區信息讀到內核來,我們需要輸入partprobe這個命令,來使我們內核重讀一下我們的分區信息。

格式化命令

mkfs -t ext4 /dev/sdb1或 mkfs.ext4 /dev/sdb1 兩者命令皆可

Linux下的文件類型有ext2、ext3、ext4、xfs等等,我們可以使用命令:mkfs. 然後用按TAB鍵來查看都有哪些文件類型。

[root@centos8-nat-168-182-152 ~]# mkfs.ext4 /dev/sdb1 
mke2fs 1.45.6 (20-Mar-2020)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: 1463fdcf-7360-4eb2-a671-d07262266121
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done

檢查,格式化後就有UUID

[root@centos8-nat-168-182-152 ~]# lsblk -f
NAME        FSTYPE      LABEL                      UUID                                   MOUNTPOINT
sda                                                                                       
├─sda1      xfs                                    58a9a0c3-f34d-41f7-a3e8-40e4801d8615   /boot
└─sda2      LVM2_member                            tA0cp2-gAml-dmLs-i3Rh-GHqT-iNDT-fa3PBt 
  ├─cl-root xfs                                    9cbc11d5-0d6b-4c1a-8511-fba93dada487   /
  └─cl-swap swap                                   f0029228-fb9b-4131-ae57-f0ba1282a0c6   [SWAP]
sdb                                                                                       
└─sdb1      ext4                                   1463fdcf-7360-4eb2-a671-d07262266121   
sr0         iso9660     CentOS-8-4-2105-x86_64-dvd 2021-06-01-20-39-18-00                 

四、掛載

1)臨時掛載

將指定的一個目錄作為掛載點目錄時,如果掛載點的目錄有文件,那麼文件會被隱藏。因此當我們需要掛載目錄時,最好新建一個空文件夾來作為掛在點目錄。(重啟後失效

創建掛載目錄

$ mkdir -p /opt/data1

掛載

$ mount /dev/sdb1 /opt/data1

取消掛載,下麵兩條命令均可

$ umount /dev/sdb1 # 磁碟名
$ umount /opt/data1 # 掛載目錄名

2)永久掛載

使用永久掛載,就意味著它開機會自動掛載(編輯 /etc/fstab 文件)

命令:blkid:查看對應分區的UUID(編號)。UUID唯一標識每一個分區,防止錯誤的掛載。除此之外,還會顯示分區的類型。(建議先複製一下sdb1的UUID,一會兒會用到)

[root@centos8-nat-168-182-152 ~]# blkid /dev/sdb1 
/dev/sdb1: UUID="1463fdcf-7360-4eb2-a671-d07262266121" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="72914843-01"

使用vi編輯 /etc/fstab在命令行直接輸入vim /etc/fstab 就可以編輯,實現開機自動掛載。

$ echo 'UUID="1463fdcf-7360-4eb2-a671-d07262266121"  /opt/data1  ext4  defaults 0  0' >> /etc/fstab

/etc/fstab該文件中存在六列參數:

第一列:設備文件或UUID或label(三者的區別看下麵)
第二列:設備的掛載點(空目錄)
第三列:該分區文件系統的格式(可以使用特殊的參數auto,自動識別分區的分區格式)
第四列:文件系統的參數,設置格式的選項
第五列:dump備份的設置(0表示不進行dump備份,1代表每天進行dump備份,2代表不定日期的進行dump備份)
第六列:磁碟檢查設置(其實是一個檢查順序,0代表不檢查,1代表第一個檢查,2後續.一般根目錄是1,數字相同則同時檢查)

設備文件、UUID、label作為標識的不同:

  1. 使用設備文件名會在當前生效,可能在系統重啟之後會出現問題
  2. label在系統重啟之後也會生效,但是要實時註意該設備的label
  3. UUID是分區的唯一標識。(推薦)

可以查看sdb1分區的UUID和label(詳細信息) ,發現sdb1沒有設置label,但是可以查看/dev/sr0的lable(/dev/sr0是光碟機的設備名)

最後驗證:

由於內核還沒有讀取這個命令,使用mount -a 這個命令來讓內核讀取這個文件(通過mount -a 讀取/etc/fstab 重新掛載)

$ mount -a


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

-Advertisement-
Play Games
更多相關文章
  • 詳細講解python爬蟲代碼,爬微博搜索結果的博文數據。 爬取欄位: 頁碼、微博id、微博bid、微博作者、發佈時間、微博內容、轉發數、評論數、點贊數。 爬蟲技術: 1、requests 發送請求 2、datetime 時間格式轉換 3、jsonpath 快速解析json數據 4、re 正則表達式提... ...
  • 為什麼要多線程下載 俗話說要以終為始,那麼我們首先要明確多線程下載的目標是什麼,不外乎是為了更快的下載文件。那麼問題來了,多線程下載文件相比於單線程是不是更快? 對於這個問題可以看下圖。 橫坐標是線程數,縱坐標是使用對應線程數下載對應文件時花費的時間,藍橙綠代表下載文件的大小,每個線程下載對應文件2 ...
  • 基礎知識 python是一門腳本語言,它是解釋執行的。 python使用縮進做為語法,而且python2環境下同一個py文件中不能同時存在tab和空格縮進,否則會出錯,建議在IDE中顯示縮進符。 python在聲明變數時不寫數據類型,可以type(xx)來獲取欄位的類型,然後可以int(),list ...
  • 迎面走來了你的面試官,身穿格子衫,挺著啤酒肚,髮際線嚴重後移的中年男子。 手拿泡著枸杞的保溫杯,胳膊夾著MacBook,MacBook上還貼著公司標語:“我愛加班”。 面試開始,直入正題。 面試官: 看你簡歷上面寫著精通MySQL,我先問你事務的特性是什麼? 老生常談,這個還有誰不會背的嗎? 我: ...
  • 「簡單有價值的事情長期堅持做」 這是成功最簡單,但也最難學的秘訣。不經過訓練,人很難意識到時間複利的威力。 仙劍奇俠傳的「十里坡劍神」和金庸群俠傳的「十級野球拳」,就是簡單的事情持之以恆反覆做,最後就有巨大的威力 唐家三少成為網文收入第一,最重要的一步是十四年從未斷日更 這樣的案例很多,一開始可能成 ...
  • 目錄 一.簡介 二.效果演示 三.源碼下載 四.猜你喜歡 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 基礎 零基礎 OpenGL (ES) 學習路線推薦 : OpenGL (ES) 學習目錄 >> OpenGL ES 轉場 零基礎 O ...
  • 前言 本文將以 C# 語言來實現一個簡單的布隆過濾器,為簡化說明,設計得很簡單,僅供學習使用。 感謝@時總百忙之中的指導。 布隆過濾器簡介 布隆過濾器(Bloom filter)是一種特殊的 Hash Table,能夠以較小的存儲空間較快地判斷出數據是否存在。常用於允許一定誤判率的數據過濾及防止緩存 ...
  • (註:此筆記預設操作系統為centOS7) 文件許可權 超級管理員用戶(root)可以修改任何文件,普通用戶才有許可權這個概念。 文件許可權就是文件的訪問許可權,即哪些用戶和群組可以訪問文件以及執行怎麼樣的操作。 Linux/Unix系統是典型的多用戶系統,不同的用戶處於不同的地位,對文件和目錄有不同的訪問 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...