CentOS(五)--Linux系統的分區概念

来源:http://www.cnblogs.com/zb9222/archive/2016/09/20/5889047.html
-Advertisement-
Play Games

一、系統分區 首先先普及一下有關係統分區的一些知識: 硬碟分區有三種,主磁碟分區、擴展磁碟分區、邏輯分區。 一個硬碟主分區至少有1個,最多4個,擴展分區可以沒有,最多1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若幹個。在windows下激活的主分區是硬碟的啟動分區,他是獨立的,也是硬碟的 ...


一、系統分區

首先先普及一下有關係統分區的一些知識:

硬碟分區有三種,主磁碟分區、擴展磁碟分區、邏輯分區。


一個硬碟主分區至少有1個,最多4個,擴展分區可以沒有,最多1個。且主分區+擴展分區總共不能超過4個。邏輯分區可以有若幹個。
在windows下激活的主分區是硬碟的啟動分區,他是獨立的,也是硬碟的第一個分區,正常分的話就是C區。

在linux下主分區和邏輯分區都可以用來放系統,引導os開機,grub會相容windows系統開機啟動。分出主分區後,其餘的部分可以分成擴展分區,一般是剩下的部分全部分成擴展分區,也可以不全分,那剩的部分就浪費了。


但擴展分區是不能直接用的,他是以邏輯分區的方式來使用的,所以說擴展分區可分成若幹邏輯分區。他們的關係是包含的關係,所有的邏輯分區都是擴展分區的一部分。


在linux中第一塊硬碟分區為hda分區(或者是sda分區),主分區編號為hda1-4,邏輯分區從5開始。


硬碟的容量=主分區的容量+擴展分區的容量    擴展分區的容量=各個邏輯分區的容量之和


主分區也可成為“引導分區”,會被操作系統和主板認定為這個硬碟的第一個分區。所以C盤永遠都是排在所有磁碟分區的第一的位置上。


MBR(主引導記錄)的分區表(主分區表)只能存放4個分區,如果要分更多的分區的話就要一個擴展分區表(EBR),擴展分區表放在一個系統ID為0x05的主分區上,這個主分區就是擴展分區,擴展分區能可以分若幹個分區,每個分區都是個邏輯分區

MBR、擴展分區、邏輯分區的概念

一個是放置該硬碟的信息區,稱之為主引導分區(master boot recorder,MBR),一個是實際文件數據放置的地方.其中,MBR是整個硬碟最重要的區域.一旦MBR物理實體損壞時,則該硬碟就差不多報廢了.一般來說,MBR有512個位元組,且可以分為兩個部分.
(1)第一部分有446個位元組,用於存放引導代碼,即bootloader.
(2)第二部分有64個位元組,用於存放磁碟分區表.其中,每個分區的信息需要用16個位元組來記錄,因此,一個硬碟最多可以有4個分區.這4個分區稱之為主分區和擴展分區(extended).


註:通常所說的"硬碟分區"就是指修改磁碟分區表,它定義了"第n個磁碟塊是從第x個柱面到第y個柱面".因此,當系統要讀取第n個磁碟塊時,就是去讀硬碟上第x個柱面到第y個柱面的信息.


由於擴展分區只能有一個所以這4個分區可以是4個主分區或者3個主分區加1個擴展分區,如下所示:
P + P + P + P
P + P + P + E
重點說明的是,擴展分區不能直接使用,還需要將其劃分為邏輯分區才行.這樣就產生了一個問題,既然擴展分區不能直接使用,但為什麼還要劃分出一定的空間來給擴展分區呢?這是因為,如果用戶想要將硬碟劃分為5個分區的話,那該如何?此時,就需要擴展分區來幫忙了.
由於MBR僅能保存4個分區的數據信息,如果超過4個,系統允許在額外的硬碟空間存放另一份磁碟分區信息,這就是擴展分區.若將硬碟分成3P+E,則E實際上是告訴系統,磁碟分區表在另外的那份分區表,即擴展分區其實是指向正確的額外分區表.本身擴展分區不能直接使用,還需要額外將擴展分區分成邏輯分區才能使用,因此,用戶通過擴展分區就可以使用5個以上的分區了.


註意:
(1)實際上,不建議用戶將硬碟分為4個主分區.這是因為,假如一個20GB的硬碟,若4個主分區占據了15GB的空間,則剩下的5GB空間完全不能使用,因為已經沒有多餘的分區表可以記錄這些空間了.
(2)考慮到磁碟的連續性,一般建議將擴展分區放在最後面的柱面內.
(3)理論上允許一個硬碟只有1個主分區,其它空間都分配給擴展分區.

硬碟的分區主要分為基本分區(Primary Partion)和擴展分區(Extension Partion)兩種,基本分區和擴展分區的數目之和不能大於四個,(根據上面的一些分區概念,是基本分區的數目不能超過4個,而擴展分區的數目最多只有1個,所以兩者數目之和不能超過4個)。且基本分區可以馬上被使用但不能再分區。擴展分區必須再進行分區後才能使用,也就是說 它必須還要進行二次分區。那麼由擴展分區再分下去的是什麼呢?它就是邏輯分區(Logical Partion),況且邏輯分區沒有數量上限制。

如圖,咱們最常用的windows系統的分區就是這樣分區的,首先分出一個主分區(操作系統一般就是裝在主分區裡面),然後分了一個擴展分區,因為擴展分區不能直接使用,所以需要在擴展分區下麵將其分為若幹個邏輯分區(如圖所示的D、E、F、G盤就是分出來的邏輯分區)。

二、Windows分區和Linux分區的區別

在Windows操作系統中,是先將物理地址分開(分出主分區和邏輯分區),再在分區上建立目錄。在Windows操作系統中,所有路徑都是從盤符開始,如C://Program Files.   Linux正好相反,是先有目錄,再將物理地址(分區)映射到目錄中.在Linux操作系統中,所有路徑都是從根目錄開始【/】。Linux預設可分為3個分區,分別是boot分區、swap分區和根分區.   無論是Windows操作系統,還是Linux操作系統,每個分區均可以有不同的文件系統,如FAT32、NTFS等。   對習慣於使用Dos或Windows的用戶來說,有幾個分區就有幾個驅動器,並且每個分區都會獲得一個字母標識符,然後就可以選用這個字母來指定在這個分區上的文件和目錄,它們的文件結構都是獨立的,非常好理解。但對於Linux系統來說,可不再是這樣了,因為對Linux系統用戶來說,無論有幾個分區,分給哪一目錄使用,它歸根結底就只有一個根目錄,一個獨立且唯一的文件結構。Linux中每個分區都是用來組成整個文件系統的一部分,因為它採用了一種叫"掛載"的處理方法,它的整個文件系統中包含了一整套的文件和目錄,且將一個分區和一個目錄聯繫起來。這時要載入的一個分區將使它的存儲空間在一個目錄下獲得。下麵我們先來看看Linux的驅動器是如何標識的。   對於IDE硬碟,驅動器標識符為“hdx~”,其中“hd”表明分區所在設備的類型,這裡 是指IDE硬碟了。“x”為盤號(a為基本盤,b為基本從屬盤,c為輔助主盤,d為輔助從屬盤),“~”代表分區,前四個分區用數字1到4表示,它們是主分區或擴展分區,從5開始就是邏輯分區。例,hda3表示為第一個IDE硬碟上的第三個主分區或擴展分區,hdb2表示為第二個IDE硬碟上的第二個主分區或擴展分區。對於SCSI硬碟則標識為“sdx~”,SCSI硬碟是用“sd”來表示分區所在設備的類型的,其餘則和IDE硬碟的表示方法一樣。如,sda1表示第一個SCSI硬碟上的第一個主分區或者擴展分區。   三、Linux的分區 在Linux系統中,我們可以通過 fdisk -l (需要root許可權)命令來查看安裝的Linux系統的分區具體情況 複製代碼
[root@xiaoluo /]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0x00066e2b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2611    20458496   8e  Linux LVM

Disk /dev/mapper/vg_xiaoluo-lv_root: 18.8 GB, 18832424960 bytes
255 heads, 63 sectors/track, 2289 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: 0x00000000


Disk /dev/mapper/vg_xiaoluo-lv_swap: 2113 MB, 2113929216 bytes
255 heads, 63 sectors/track, 257 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: 0x00000000
複製代碼

通過上面的 fdisk -l 命令可以看到,在我安裝的CentOS系統上,一共分了兩個區sda1、sda2.以及swap區。

Linux的分區是不同於其它操作系統分區的,它的分區格式只有Ext2和Swap兩 種,Ext2用於存放系統文件,Swap則作為Linux的交換分區。那麼現在我們就可以知道Linux至少需要兩個專門的分區(Linux Native和Linux Swap)況且不能將Linux安裝在Dos/Windows分區。一般來說我們將Linux安裝一個或多個類型為“Linux Native”的硬碟分區,但是在Linux的每一個分區都必須要指定一個“Mount Point”(掛載點),告訴Linux在啟動時,這個目錄要給哪個目錄使用。對“Swap”分區來說,一般定義一個且它不必要定義載入點。下麵我們先普及下“Linux Native”和“Linux Swap”。

 

*SWAP分區

SWAP分區是LINUX暫時存儲數據的交換分區,它主要是把主記憶體上暫時不用得 數據存起來,在需要的時候再調進記憶體內,且作為SWAP使用的分區不用指定“Mout Point”(載入點),既然它作為交換分區,我們理所當然應給它指定大小,它至少要等於系統上實際記憶體的量,一般來說它的大小是記憶體的兩倍,如果你是 16MB的記憶體,那麼SWAP分區的大小是32MB左右,以此類推。但必須還要註意一點,SWAP分區不要大於128MB,如果你是64MB的記憶體,那麼 SWAP分區最大也只能被定為127MB,再大就是浪費空間了,因為系統不需要太大的交換分區。以此類推,如果你是128MB或更大的記憶體,SWAP分區 也只能最大被定為127MB。況且你還必須註意的是如果你是128MB(或更大)的記憶體,你必須提醒系統你有這麼大的記憶體,要不然它可不認你這個 128MB記憶體。具體如下:當順利啟動了安裝過程後,會顯示一個boot:提示符,這時你只要鍵入boot:linux mem=128MB就可以了。另外你也可以創建和使用一個以上的交換分區,最多16個。

 

*Linux Native

Linux Native是存放系統文件的地方,它只能用EXT2的分區類型,上面已說過。對Windows用戶來說,操作系統必須裝在同一分區里,它是商業軟體嗎! 所以你沒有選擇的餘地!對Linux來說,你有了較大的選擇餘地,你可以把系統文件分幾個區來裝(必須要說明載入點),也可以就裝在同一個分區中(載入點是“/”)。下麵我們看看 可以創建哪些分區(僅列常用幾種)。

/boot分區 它包含了操作系統的內核和在啟動系統過程中所要用到的文件,建這個分區是有必要的,因為目前大多數的PC機要受到BIOS的限制,
      況且如果有了一個單獨的/boot啟動分區,即使主要的根分區出現了問題,電腦依然能夠啟動。這個分區的大小約在50MB—100MB之間(根據Linux版本不同,數值可以不一樣)。
      但是如果想用LILO啟動Linux系統的話,含有/boot的分區必須完全在柱面1023以下。又由於8GB後的數據LILO不能讀取,所以Linux要安裝在8GB的區域以內。

 

根據安裝的Linux版本,可以選擇為/boot分區劃分不同的空間(我設置的是500M),查看具體某一個目錄的所在的分區使用 df [目錄全路徑] 這個命令查看,如:

[root@xiaoluo /]# df /boot/
文件系統             1K-塊      已用      可用 已用% 掛載點
/dev/sda1               495844     50655    419589  11% /boot
我們可以看到,我們的/boot目錄是掛載在了 sda1 這個分區上,當然我們可以將/boot目錄從該分區上卸載掉,通過如下命令就可以:
[root@xiaoluo /]# umount /boot

此時我們可以看到,/boot下麵已經沒有任何東西了,我們設置可以在 / 根目錄下建立一個自己的目錄,然後將自己的這個目錄掛載到 sda1 這個分區上(不推薦)。

/usr分區,是Linux系統存放軟體的地方,如有可能應將最大空間分給它。

/home分區,是用戶的home目錄所在地,這個分區的大小取決於有多少用戶。如果是多用戶共同使用一臺電腦的話,這個分區是完全有必要的,況且根用戶也可以很好地控制普通用戶使用電腦,如對用戶或者用戶組實行硬碟限量使用,限制普通用戶訪問哪些文件等。其實單用戶也有建立這個分區的必要,因為沒這個分區的話,那麼你只能以根用戶的身份登陸系統,這樣做是危險的,因為根用戶對系統有絕對的使用權,可一旦你對系統進行了誤操作,麻煩也就來了。

/var/log分區,是系統日誌記錄分區,如果設立了這一單獨的分區,這樣即使系統的日誌文件出現了問題,它們也不會影響到操作系統的主分區。

/tmp分區,用來存放臨時文件。這對於多用戶系統或者網路伺服器來說是有必要的。這樣即使程式運行時生成大量的臨時文件,或者用戶對系統進行了錯誤的操作,文件系統的其它部分仍然是安全的。因為文件系統的這一部分仍然還承受著讀寫操作,所以它通常會比其它的部分更快地發生問題。

/bin分區,存放標準系統實用程式。

/dev分區,存放設備文件。

/opt分區,存放可選的安裝的軟體。

/sbin分區,存放標準系統管理文件。 


我們可以如果要查看Linux磁碟的使用情況,使用如下命令即可:
複製代碼
[root@xiaoluo /]# df -h
文件系統          容量  已用  可用 已用%% 掛載點
/dev/mapper/vg_xiaoluo-lv_root
                       18G  8.2G  8.3G  50% /
tmpfs                 245M  228K  245M   1% /dev/shm
/dev/sda1             485M   50M  410M  11% /boot
/dev/sr0              391M  391M     0 100% /media/20130331_132633
複製代碼


所以,通過以上的概述,總結一下Linux分區需要註意的地方,在安裝Linux系統時,我們一般為其分配三個區:

/boot區,通常情況下根據Linux的版本不同,個人分區習慣會不同,我這裡分配了500M給這個分區。

swap區,交換區,通常分配給其的大小為物理記憶體的2倍,但是最好不要超過256M,所以我這裡分配了256M給這個分區。

 / 區,也就是根目錄,這個分區儘量給其分配大的空間,可以將安裝Linux系統的這個硬碟上除去分給/boot、swap區以外的空間都分配給這個分區。

對於Linux系統分區的概念基本上就是這些,在後續的學習中將繼續記錄自己學習Linux系統的點點滴滴!!!

以上內容為轉載,本人親測!向發博的主人敬禮

 


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

-Advertisement-
Play Games
更多相關文章
  • 這是如何使用SQL server來 編寫 資料庫 表的 操作方式 學習要點: SQL之-建庫、建表、建約束、關係SQL基本語句大全.txt舉得起放得下叫舉重,舉得起放不下叫負重。頭要有勇氣,抬頭要有底氣。學習要加,驕傲要減,機會要乘,懶惰要除。人生三難題:思,相思,單相思。SQL之-建庫、建表、建約 ...
  • 目錄: Prerequisites 集群配置規劃 創建域控伺服器 polybase install firewall config 集群配置 刪除計算節點 install Prerequisites Microsoft .NET Framework 4.5 Oracle Java SE RunTim ...
  • 在mysql 中,索引可以分為兩種類型 hash索引和 btree索引。 什麼情況下可以用到B樹索引? 1.全值匹配索引 比如: orderID="123” 2.匹配最左首碼索引查詢 比如:在userid 和 date欄位上創建聯合索引。 那麼如果輸入 userId作為條件,那麼這個userid可以... ...
  • PolyBase is a technology that accesses and combines(整合) both non-relational and relational data, all from within SQL Server. It allows you to run quer ...
  • K近鄰應用-異常檢測應用 原理: 根據數據樣本進行KMeans機器學習模型的建立,獲取簇心點,以簇為單位,離簇心最遠的第五個點的距離為閾值,大於這個值的為異常點,即獲得數據異常。 如圖: 數據樣本: 數據樣本的數據格式為:標號,特征值1,特征值2(沒有具體含義,自動生成的數據只為能夠簡單的說明異常檢 ...
  • DW一直以來是企業信息與決策支持系統的核心組件,隨著各類日誌、社交、感測等非結構化數據的加入,企業內部數據按指數級增長,傳統DW已經達到一個關鍵臨界點——需要大量的資源投入到硬體、優化、支持和維護中,當前大部分使用Apache Hadoop來處理各種來源的大數據,但傳統數據倉庫不允許最終用戶查詢非結 ...
  • 當微軟發佈第一個SQL Server並行數據倉庫R2時(SQL ServerParallel Data Warehouse,即PDW),已正式將產品的名稱修改為分析服務平臺(APS),但在一些非正式場合,仍然保留了PDW的叫法 目錄: APS簡介 APS特性 NEC一體機 戴爾資料庫一體機 小結 A ...
  • 運行級別 級別說明 0 所有進程將被終止,機器將有序的停止,關機時系統處於這個運行級別 1 單用戶模式,用於系統維護,只有少數進程運行,同時所有服務也不啟動 2 多用戶模式,和運行級別3一樣,只是網路問卷系統(NFS)服務沒有啟動 3 多用戶模式,允許多用戶登錄系統,是系統預設的啟動級別 4 留給用 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...