Centos7筆記 | 硬碟、Parted 分區、mount命令、Swap分區的擴展、、文件系統詳解、

2021-02-15 網絡技術聯盟站


硬碟設備是由大量的扇區組成,每個扇區容量512位元組,第一扇區最為重要,保存主引導記錄和分區表信息。分別是主引導記錄佔用446,分區表佔用64位元組,結束符2位元組,其中分區表中每記錄一個信息佔用16位元組,最多只有四個分區,為了解決分區數不夠,衍生出擴展分區。擴展分區可以用來創建邏輯分區,邏輯分區最多128個。

硬體設備

文件名稱

IDE設備

/dev/hd[a-d]

SCSI/SATA/U盤/SAS

/dev/sd[a-p]

軟碟機

/dev/fd[0-1]

印表機

/dev/lp[0-15]

光碟機

/dev/cdrom

滑鼠

/dev/mouse

磁帶機

/dev/st0或/dev/ht0

IDE硬碟接口在Linux中設備名為/dev/hda,SAS、SCSI、SATA硬碟接口在Linux中設備名為sda,高效雲盤硬碟接口會識別為/dev/vda等。

    硬碟的最小存儲單位叫做Sector(扇區),每個Sector儲存512位元組。作業系統在讀取硬碟的時候,不會逐個Sector的去讀取,這樣效率非常低,為了提升讀取效率,作業系統會一次性連續讀取多個Sector,即一次性讀取多個Sector稱為一個Block(塊)。

    由多個Sector組成的Block是文件存取的最小單位。Block的大小常見的有1KB、2KB、4KB,Block在Linux中常設置為4KB,即連續八個Sector組成一個Block。 

硬碟分區分別分成(superblock)、inode、block,

Superblock:文件系統的整體信息,包含inode值和block塊的使用的大小、剩餘大小,相關的格式及信息。(記錄inode和block的對應關係)

Inode:記錄文件的屬性和信息,同時會把文件的存儲的位置生成一個編號(inode值:記錄數據的存儲位置(block在分區中所在位置))

Block塊是存儲文件的內容。因為每個 inode 與 block 都有編號,而每個文件都會佔用一個 inode ,inode 內則有文件數據放置的 block 號碼。如果能夠找到文件的 inode,就可以找到該文件所放置數據的block號碼,從而讀取該文件內容。

1.1  Parted 分區

Parted 分區格式:gpt

1)將硬碟所有內容分到一個分區

 

將2.4T 硬碟分區操作

 

 

-1 參數:代表剩下的所有空間。

Parted工具中的mklabel 和mkpart 參數

 

 

1.2  mount命令實例

Mount常用案例演示如下:

mount  /dev/sdb1  /data 掛載/dev/sdb1分區至/data/目錄
mount /dev/cdrom  /mnt 掛載Cdrom光碟至/mnt目錄;
mount -t ntfs-3g /dev/sdc /data1 掛載/dev/sdc移動硬碟至/data1目錄;
mount -o remount,rw /  重新以讀寫模式掛載/系統;
mount -t iso9660 -o loop centos7.iso /mnt 將centos7.iso鏡像文件掛載至/mnt目錄;
mount -t fat32 /dev/sdd1 /mnt  將U盤/dev/sdd1掛載至/mnt/目錄;
mount -t nfs 192.168.1.11:/data/ /mnt  將遠程192.168.1.11:/data目錄掛載至本地/mnt目錄。

1.3  文件系統詳解 


EXT4是第四代擴展文件系統(Fourth EXtended filesystem,EXT4)是Linux系統下的日誌文件系統,是EXT3文件系統的後繼版本;

EXT3類型文件系統支持最大16TB文件系統和最大2TB文件;

EXT4分別支持1EB(1EB=1024PB,1PB=1024TB)的文件系統,以及16TB的單個文件;

EXT3只支持32,000個子目錄,而EXT4支持無限數量的子目錄;

EXT4磁碟結構的inode個數支持40億,而且EXT4的單個文件大小支持到16T(4K block size)  ;

XFS是一個64位文件系統,最大支持8EB減1位元組的單個文件系統,實際部署時取決於宿主作業系統的最大塊限制,常用語64位作業系統,發揮更好的性能;

XFS一種高性能的日誌文件系統,最早於1993年,由Silicon Graphics為他們的IRIX作業系統而開發,是IRIX 5.3版的默認文件系統;


1.4  Swap分區的擴展

dd 命令創建一個空文件,if指定一個來源/dev/zero(/dev/zero文件提供源源不斷的「0」數據),of指定存儲文件,bs=定義塊的大小,count=定義塊的數量

[root@localhost ~]# dd if=/dev/zero of=/root/test bs=100M count=2020+0 records in20+0 records out2097152000 bytes (2.1 GB) copied, 42.9902 s, 48.8 MB/s [root@localhost ~]# mkswap  /root/testSetting up swapspace version 1, size = 2047996 KiBno label, UUID=13db4d1a-eb96-49fc-8e29-33e51c660ea5 [root@localhost ~]# free -hm        total    used     free    shared  buff/cache   availableMem:     976M    113M     170M    6.7M      692M        686MSwap:    2.0G     0B       2.0G[root@localhost ~]# swapon /root/testswapon: /root/test: insecure permissions 0644, 0600 suggested.[root@localhost ~]# free -hm       total        used        free      shared  buff/cache   availableMem:    976M        115M        168M        6.7M        692M        684MSwap:   4.0G          0B        4.0G[root@localhost ~]#[root@localhost ~]# swapoff  /root/test[root@localhost ~]#[root@localhost ~]# free -m        total    used     free   shared  buff/cache   availableMem:     976      114      168      6      693         685Swap:    2047     0        2047

1.5  使用xfs文件系統superblock實驗


1. 創建一個XFS文件系統

[root@localhost ~][root@localhost ~][root@localhost ~]/dev/sdb1                         30G  610M   30G   2% /test

2. 卸載文件系統/test, 並且破壞superblock

[root@localhost ~]# umount /test[root@localhost ~]# dd if=/dev/zero of=/dev/sdb1 bs=512 count=11+0 records in1+0 records out512 bytes (512 B) copied, 0.00251096 s, 204 kB/s

3. 再次掛載報錯

[root@localhost ~]# mount -amount: wrong fs type, bad option, bad superblock on /dev/sdb1,                   missing codepage or helper program, or other error                   In some cases useful info is found in syslog - try               dmesg | tail  or so

[root@localhost ~]# dmesg[22597379.623449] XFS (sdb1): bad magic number[22597379.624372] XFS (sdb1): SB validate failed

4. 恢復superblock

[root@localhost ~]Phase 1 - find and verify superblock...bad primary superblock - bad magic number !!!

attempting to find secondary superblock..found candidate secondary superblock...verified secondary superblock...writing modified primary superblocksb realtime bitmap inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 129resetting superblock realtime bitmap ino pointer to 129sb realtime summary inode 18446744073709551615 (NULLFSINO) inconsistent with calculated value 130resetting superblock realtime summary ino pointer to 130Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps...sb_icount 0, counted 64sb_ifree 0, counted 60sb_fdblocks 7860552, counted 7712768 - found root inode chunkPhase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes...Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3Phase 5 - rebuild AG headers and trees... - reset superblock...Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ...Phase 7 - verify and correct link counts...Note - stripe unit (0) and width (0) fields have been reset.Please set with mount -o sunit=<value>,swidth=<value>done

5. 確認是否已經恢復

[root@localhost ~][root@localhost ~]/dev/sdb1                        30G  610M   30G   2% /test


1.2 修復ext4分區superblock 問題
[root@localhost ~]Filesystem               Size  Used Avail Use% Mounted on/dev/mapper/centos-root   17G  1.7G   16G  10% /devtmpfs                 478M     0  478M   0% /devtmpfs                    489M     0  489M   0% /dev/shmtmpfs                    489M  6.7M  482M   2% /runtmpfs                    489M     0  489M   0% /sys/fs/cgroup/dev/sda1               1014M  127M  888M  13% /boottmpfs                     98M     0   98M   0% /run/user/0/dev/sdb                  20G   33M   20G   1% /test/dev/sdc1                 20G   44M   19G   1% /test1

[root@localhost ~][root@localhost ~]dd if=/dev/zero of=/dev/sdc1 bs=100M count=1010+0 records in10+0 records out1048576000 bytes (1.0 GB) copied, 1.72432 s, 608 MB/s

 [root@localhost ~]mount: wrong fs type, bad option, bad superblock on /dev/sdc1,       missing codepage or helper program, or other error        In some cases useful info is found in syslog - try       dmesg | tail or so.


 [root@localhost ~]fsck from util-linux 2.23.2e2fsck 1.42.9 (28-Dec-2013)ext2fs_open2: Bad magic number in super-blockfsck.ext4: Superblock invalid, trying backup blocks...fsck.ext4: Bad magic number in super-block while trying to open /dev/sdc1 The superblock could not be read or does not describe a correct ext2filesystem.  If the device is valid and it really contains an ext2filesystem (and not swap or ufs or something else), then the superblockis corrupt, and you might try running e2fsck with an alternate superblock:    e2fsck -b 8193 <device>

[root@localhost ~]# mke2fs  -S /dev/sdc1-S 僅寫入superblock與group descriptorsmke2fs 1.42.9 (28-Dec-2013)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks1310720 inodes, 5242631 blocks262131 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=4294967296160 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000 Allocating group tables: done                            Writing superblocks and filesystem accounting information: done

[root@localhost ~]# mount /dev/sdc1mount: mount /dev/sdc1 on /test1 failed: Stale file handle[root@localhost ~]#[root@localhost ~]# fsck -t ext4 -y /dev/sdc1

檢查特定類型的文件系統(ext4),-y檢測完成之後並自動修復

fsck from util-linux 2.23.2e2fsck 1.42.9 (28-Dec-2013)/dev/sdc1 contains a file system with errors, check forced.Resize inode not valid.  Recreate? yesPass 1: Checking inodes, blocks, and sizesRoot inode is not a directory.  Clear? yesPass 2: Checking directory structurePass 3: Checking directory connectivityRoot inode not allocated.  Allocate? ye/lost+found not found.  Create? yesPass 4: Checking reference countsPass 5: Checking group summary informationBlock bitmap differences:  +(0Fix? yesFree blocks count wrong for group Fix? yesFree blocks count wrong (5149114, counted=5149113).Fix? yesInode bitmap differences:  +1 +(3Fix? yesFree inodes count wrong for group Fix? yesDirectories count wrong for group Fix? yesFree inodes count wrong (1310719, counted=1310709).Fix? yes/dev/sdc1: ***** FILE SYSTEM WAS MODIFIED *****/dev/sdc1: 11/1310720 files (0.0% non-contiguous), 93518/5242631 block[root@localhost ~]Filesystem               Size  Used Avail Use% Mounted on/dev/mapper/centos-root   17G  1.7G   16G  10% /devtmpfs                 478M     0  478M   0% /devtmpfs                    489M     0  489M   0% /dev/shmtmpfs                    489M  6.7M  482M   2% /runtmpfs                    489M     0  489M   0% /sys/fs/cgroup/dev/sda1               1014M  127M  888M  13% /boottmpfs                     98M     0   98M   0% /run/user/0/dev/sdb                  20G   33M   20G   1% /test/dev/sdc1                 20G   44M   19G   1% /test1

再長的路,一步步也能走完,再短的路,不邁開雙腳也無法到達

相關焦點

  • Linux 關於交換分區swap
    >以磁碟分區的方式擴展swap交換分區以鏡像文件的方式擴展swap交換分區優點與不足優勢:>內存佔滿時,作為溢出空間幫助內存工作可以將不常用的項目從RAM移到swap交換分區當中,以提高RAM的工作效率可以根據自己的需求停止或激活swap分區 不足:
  • Linux:掛接(mount)命令的使用方法
    命令格式:   mount [-t vfstype] [-o options] device dir    其中:   1.-t vfstype 指定文件系統的類型,通常不必指定。mount 會自動選擇正確的類型。
  • Linux fdisk創建分區(主分區、擴展分區和邏輯分區)過程詳解
    對於一個硬碟來說,主分區至少有 1 個,最多有 4 個;擴展分區可以沒有,最多只能有 1 個,且主分區+擴展分區總共不能超過 4 個;邏輯分區可以有若干個。前面我們已經學習了 fdisk 命令的基本用法,本節就來用它給硬碟分區。fdisk命令創建主分區首先,我們要建立一個主分區,看看過程是什麼樣子的。
  • 如何在Ubuntu 16.04上增加Swap分區
    總的來說,當系統的RAM耗盡時,將交換空間作為回落空間可能是一個很好的安全網,可防止非SSD存儲系統出現內存不足的情況。檢查系統的交換信息在開始之前,我們可以檢查系統是否已經有一些可用的交換空間,可能有多個交換文件或交換分區,但通常應該是足夠的。
  • fdisk -l 查看硬碟及分區信息
    fdisk工具是分區工具;df是用來查看文件系統(分區)的使用情況的!h  查看當前文件系統信息,包括容量大小、使用情況、掛載點等一、fdisk 的介紹;fdisk - Partition table manipulator for Linux ,譯成中文的意思是磁碟分區表操作工具;其實就是分區工具; fdisk 能劃分磁碟成為若干個區,同時也能為每個分區指定分區的文件系統,比如linux 、fat32、
  • Linux掛載命令mount用法及參數詳解
    導讀mount是Linux下的一個命令,它可以將分區掛接到Linux的一個文件夾下,從而將分區和該目錄聯繫起來
  • Linux Swap交換分區介紹總結
    在Linux下,Swap的作用類似Windows系統下的「虛擬內存」。當物理內存不足時,拿出部分硬碟空間當SWAP分區(虛擬成內存)使用,從而解決內存容量不足的情況。Swap意思是交換,顧名思義,當某進程向OS請求內存發現不足時,OS會把內存中暫時不用的數據交換出去,放在Swap分區中,這個過程稱為SWAP OUT。
  • Linux下如何掛載新磁碟:mount
    經過一番搜索,發現新的硬體設備插在linux系統上時,如果不能正常顯示,則需要通過掛載讓U盤顯示出來,這裡就用到了我們今天要介紹的命令:mount。mount的使用1.掛載的概念要想在linux系統中被訪問,硬體(指U盤硬碟等)需要被指定到根目錄下的某個目錄上,這種關聯關係的操作就叫掛載,相反的操作叫卸載。
  • 擴展分區教程(Ubuntu擴容)詳細
    Ubunut擴展分區教程一、擴展分區,先關機,選擇硬碟,點擊擴展,輸入你想要的磁碟G數,我擴展為45G,等待片刻,虛擬擴展從磁碟完成。二、擴展後,打開虛擬機。進行分區掛載。1.   輸入命令:sudo fdisk -l (查看磁碟分區情況,你沒有新建的時候只有sda1,此時已經新建sda2)
  • 怎麼給硬碟進行分區與格式化? 史上最詳細的硬碟分區方法大全
    川北在線核心提示:原標題:怎麼給硬碟進行分區與格式化? 史上最詳細的硬碟分區方法大全 很多用戶都想了解一下裝系統的基礎知識,比如分區、格式化等。我們之前簡單介紹過大硬碟GPT分區方法,使用的是Win10系統自帶的Diskpart工具。
  • 如何快速地創建硬碟分區
    1、主分區主分區是用於安裝作業系統的分區,其中包含作業系統啟動時所必需的文件和數據,系統必須通過它才能啟動。要在硬碟上安裝作業系統,該硬碟上至少要有一個主分區,並且設置為活動分區來引導啟動系統。擴展分區下可以包含多個邏輯分區,可以為邏輯分區進行高級格式化,並為其分配驅動器號。例如,當想為硬碟創建5 個分區時,如果都將其創建為主分區,系統只能認出4個,這不能滿足人們的需求,此時就可以創建 3 個主分區,再創建一個擴展分區,然後在擴展分區下創建 2 個邏輯分區。
  • 為什麼蘋果電腦硬碟不分區?
    有人可以給我解釋一下,為什麼Linux的文件系統是「單目錄層階樹狀」結構,而不像Windows那樣有個C:\、D:\分區啥的,這樣做有沒有特別的原因呢?一句話答案:不分區的好,Windows那是為了向下兼容。
  • Linux 必知必會 —— 新手建議、系統分區與遠程調用
    Windows通過擴展名區分文件類型,還有圖標可以區分;Linux不靠擴展名區分文件類型,靠文件權限區分,但也有一些約定俗成的擴展名:注意:這些擴展名不是必要的,即時不加擴展名也沒有影響,只是便於管理而已壓縮包:".gz", ".bz2", ".tar.bz2", ".tgz"等Linux所有存儲設備都必須掛在之後用戶才能使用,包括硬碟、U盤、光碟(將設備與掛載點連接的過程就是掛載
  • 習慣哪一種 為什麼蘋果電腦硬碟不分區
    有人可以給我解釋一下,為什麼Linux的文件系統是「單目錄層階樹狀」結構,而不像Windows那樣有個C:\、D:\分區啥的,這樣做有沒有特別的原因呢?    一句話答案:不分區的好,Windows那是為了向下兼容。
  • [pc玩家]macOS中如何向NTFS分區寫入文件
    作為Windows系統的默認分區格式,NTFS格式可能是世界上最常見的文件系統之一。默認情況下,macOS只可以讀取,無法寫入NTFS驅動器。這使得作業系統之間的文件共享變得麻煩,這種情況一般需要使用兼容的磁碟格式(如ExFAT )或允許macOS寫入NTFS驅動器的工具。
  • 安裝Mac、Windows和Linux系統,如何對硬碟分區,這些必須知道
    硬碟驅動器的分區發生在對其進行物理格式化之後,但在對其進行邏輯格式化之前。它包括在磁碟上創建不混合數據的區域。例如,可以使用它來安裝使用不同文件系統的不同作業系統,因此,至少會有與使用不同文件系統的作業系統一樣多的分區。如果只使用一個作業系統,一個磁碟分區就足夠了。
  • 在Linux系統中掛載LVM分區的步驟
    LVM分區一般都是存在於U盤當中,Linux系統通過U盤來訪問這些分區。如果想讓Linux直接訪問這些分區,可以在Linux系統中直接掛載這些分區。本文就來介紹一下,在Linux系統中掛載這些分區的方法。
  • 阿里雲伺服器怎麼分區格式化/掛載硬碟
    阿里雲主機想使用第一步當然是把主機數據盤掛載上去,然後再分區格式化。再然才可以進行安裝軟體,配置使用環境。下面的操作方法針對小鳥們看的,老鳥就沒有必要看了。這對你們來說太容易了。我也是第一次使用阿里雲主機。當然是一個記錄吧!
  • 按時間順序清理linux分區的文件方法
    linux系統和windows系統磁碟分區不一樣。在windows系統我們通俗地稱C盤、D、E、F盤等。但在linux系統換了叫根分區(/),啟動分區(/boot),交換分區(/swap),家目錄分區(/home).文件匯出分區(/repout)等。
  • 打開隱藏分區,將80G硬碟變成150G硬碟?
    OK,讓我們先來看看詳細的操作步驟:  一、要求:  Ghost 2003 Build 2003.775(不要安裝補丁),2個有OS的硬碟  1.安裝你希望恢復隱藏分區的硬碟(為方便起見稱為硬碟T)作為系統主盤,而第二個硬碟作為從盤(稱為硬碟X)。任何硬碟都可以充當從盤,因為實際上不會寫入數據。