首頁 Linux教程linux磁盤管理

linux軟件包管理

linux文件系統管理

運維派隸屬馬哥教育旗下專業運維社區,是國內成立最早的IT運維技術社區,歡迎關注公眾號:yunweipai
領取學習更多免費Linux云計算、Python、Docker、K8s教程關注公眾號:馬哥linux運維

管理存儲

使用磁盤空間過程

  1. 設備分區
  2. 創建文件系統
  3. 掛載新的文件系統

磁盤分區

為什么分區
  • 優化I/O性能
  • 實現磁盤空間配額限制
  • 提高修復速度
  • 隔離系統和程序
  • 安裝多個OS
  • 采用不同文件系統
分區方式

兩種分區方式:MBR,GPT

MBR分區

MBR:Master Boot Record,1982年,使用32位表示扇區數,分區不超過2T

劃分分區的單位:

  • CentOS 5 之前按整柱面劃分
  • CentOS 6 版本后可以按Sector劃分

0磁道0扇區:512bytes
446bytes: boot loader
64bytes:分區表,其中每16bytes標識一個分區
2bytes: 55AA
MBR分區中一塊硬盤最多有4個主分區,也可以3主分區+1擴展(N個邏輯分區)

MBR分區結構

linux磁盤管理插圖

硬盤主引導記錄MBR由4個部分組成

linux磁盤管理插圖1

  • 主引導程序(偏移地址0000H–0088H),它負責從活動分區中裝載,并運行系統引導程序
  • 出錯信息數據區,偏移地址0089H–00E1H為出錯信息,00E2H–01BDH全為0字節
  • 分區表(DPT,Disk Partition Table)含4個分區項,偏移地址01BEH–01FDH,每個分區表項長16個字節,共64字節為分區項1、分區項2、分區項3、分區項4
  • 結束標志字,偏移地址01FE–01FF的2個字節值為結束標志55AA

MBR中DPT結構

linux磁盤管理插圖2

范例: 備份MBR的分區表,并破壞后恢復

#備份MBR分區表
[root@centos8 ~]#dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446
[root@centos8 ~]#scp /data/dpt.img 10.0.0.102:

#破壞MBR分區表
[root@centos8 ~]#dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446

#無法啟動
[root@centos8 ~]#reboot

#用光盤啟動,進入rescue mode,選第3項skip to shell

#配置網絡
#ifconfig ens160 10.0.0.8/24
#scp  10.0.0.102:/root/dpt.img .

#恢復MBR分區表
#dd if=dpt.img of=/dev/sda bs=1 seek=446
#exit 

GPT分區

GPT:GUID(Globals Unique Identifiers) partition table 支持128個分區,使用64位,支持8Z( 512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盤和分區 GPT分區表自動備份在頭和尾兩份,并有CRC校驗位
UEFI (Unified Extensible Firmware Interface 統一可擴展固件接口)硬件支持GPT,使得操作系統可以啟動

GPT分區結構

linux磁盤管理插圖3

GPT分區結構分為4個區域:

  • GPT頭
  • 分區表
  • GPT分區
  • 備份區域
BIOS和UEFI

BIOS是固化在電腦主板上的程序,主要用于開機系統自檢和引導操作系統。目前新式的電腦基本上都是UEFI啟動

BIOS(Basic Input Output System 基本輸入輸出系統)主要完成系統硬件自檢和引導操作系統,操作系統開始啟動之后,BIOS的任務就完成了。系統硬件自檢:如果系統硬件有故障,主板上的揚聲器就會發出長短不同的“滴滴”音,可以簡單的判斷硬件故障,比如“1長1短”通常表示內存故障,“1長3短”通常表示顯卡故障

BIOS在1975年就誕生了,使用匯編語言編寫,當初只有16位,因此只能訪問1M的內存,其中前640K稱為基本內存,后384K內存留給開機和各類BIOS本身使用。BIOS只能識別到主引導記錄(MBR)初始化的硬盤,最大支持2T的硬盤,4個主分區(邏輯分區中的擴展分區除外),而目前普遍實現了64位系統,傳統的BIOS已經無法滿足需求了,這時英特爾主導的EFI就誕生了

EFI(Extensible Firmware Interface)可擴展固件接口,是 Intel 為 PC 固件的體系結構、接口和服務提出的建議標準。其主要目的是為了提供一組在 OS 加載之前(啟動前)在所有平臺上一致的、正確指定的啟動服務,被看做是BIOS 的繼任者,或者理解為新版BIOS。
UEFI是由EFI1.10為基礎發展起來的,它的所有者已不再是Intel,而是一個稱作Unified EFI Form的國際組織
UEFI(Unified Extensible Firmware Interface)統一的可擴展固件接口, 是一種詳細描述類型接口的標準。UEFI 相當于一個輕量化的操作系統,提供了硬件和操作系統之間的一個接口,提供了圖形化的操作界面。最關鍵的是引入了GPT分區表,支持2T以上的硬盤,硬盤分區不受限制

BIOS和UEFI區別

BIOS采用了16位匯編語言編寫,只能運行在實模式(內存尋址方式由16位段寄存器的內容乘以16(10H)當做段基地址,加上16位偏移地址形成20位的物理地址)下,可訪問的內存空間為1MB,只支持字符操作界面
UEFI采用32位或者64位的C語言編寫,突破了實模式的限制,可以達到最大的尋址空間,支持圖形操作界面,使用文件方式保存信息,支持GPT分區啟動,適合和較新的系統和硬件的配合使用

BIOS+MBR與UEFI+GPT

linux磁盤管理插圖4

管理分區

列出塊設備

lsblk

創建分區命令

fdisk  管理MBR分區
gdisk  管理GPT分區
parted 高級分區操作

重新設置內存中的內核分區表版本

partprobe
parted 命令

parted的操作都是實時生效的,小心使用

格式:

parted [選項]... [設備 [命令 [參數]...]...] 

范例:

parted /dev/sdb  mklabel gpt|msdos
parted /dev/sdb  print 
parted /dev/sdb  mkpart primary 1 200 (默認M)
parted /dev/sdb  rm 1
parted –l   列出所有硬盤分區信息

范例:

[root@centos8 ~]#parted /dev/sdb print
Error: /dev/sdb: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)                                    
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 

[root@centos8 ~]#parted  /dev/sdb mklabel gpt 
Information: You may need to update /etc/fstab.

[root@centos8 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  Flags

[root@centos8 ~]#parted /dev/sdb mkpart primary  1 1001
Information: You may need to update /etc/fstab.

[root@centos8 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  1001MB  1000MB               primary

[root@centos8 ~]#parted /dev/sdb mkpart primary  1002 1102
Information: You may need to update /etc/fstab.

[root@centos8 ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  1001MB  1000MB               primary
 2      1002MB  1102MB  99.6MB               primary

 [root@centos8 ~]#parted /dev/sdb rm 2 
Information: You may need to update /etc/fstab.

[root@centos8 ~]#parted /dev/sdb print                                    
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  1001MB  1000MB               primary
[root@centos8 ~]#parted /dev/sdb mklabel msdos 
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue?
Yes/No? Y
Information: You may need to update /etc/fstab.

[root@centos8 ~]#parted /dev/sdb print                           
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End  Size  Type  File system  Flags

[root@centos8 ~]#parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resizepart NUMBER END                    resize partition NUMBER
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  disk_set FLAG STATE                      change the FLAG on selected device
  disk_toggle [FLAG]                       toggle the state of FLAG on selected device
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) 
分區工具fdisk和gdisk

gdisk [device…] 類fdisk 的GPT分區工具

fdisk -l [-u] [device…] 查看分區

fdisk [device…] 管理MBR分區

子命令:
p 分區列表
t 更改分區類型
n 創建新分區
d 刪除分區
v 校驗分區
u 轉換單位
w 保存并退出
q 不保存并退出

查看內核是否已經識別新的分區

cat /proc/partations

Centos6 通知內核重新讀取硬盤分區表

新增分區用

partx -a  /dev/DEVICE           
kpartx -a /dev/DEVICE -f: force

刪除分區用

partx -d --nr M-N /dev/DEVICE

范例:非交互式創建分區

echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sdc

范例:

#增加了6,7分區
[root@centos6 ~]#fdisk /dev/sda 
Command (m for help): w
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.

#分區表不同步
[root@centos6 ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 97.7G  0 part /
├─sda3   8:3    0 48.8G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]

#同步分區表
[root@centos6 ~]#partx  -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
[root@centos6 ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 97.7G  0 part /
├─sda3   8:3    0 48.8G  0 part /data
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    2G  0 part [SWAP]
├─sda6   8:6    0    2G  0 part 
└─sda7   8:7    0    3G  0 part

#刪除了6,7分區
[root@centos6 ~]#fdisk /dev/sda 
Command (m for help): w
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.
[root@centos6 ~]#

[root@centos6 ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 97.7G  0 part /
├─sda3   8:3    0 48.8G  0 part /data
├─sda4   8:4    0    1K  0 part 
├─sda5   8:5    0    2G  0 part [SWAP]
├─sda6   8:6    0    2G  0 part 
└─sda7   8:7    0    3G  0 part 

#同步分區表
[root@centos6 ~]#partx -d --nr 6-7 /dev/sda
[root@centos6 ~]#lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  3.7G  0 rom  
sda      8:0    0  200G  0 disk 
├─sda1   8:1    0    1G  0 part /boot
├─sda2   8:2    0 97.7G  0 part /
├─sda3   8:3    0 48.8G  0 part /data
├─sda4   8:4    0    1K  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]

CentOS 5,7,8 使用partprobe同步分區表

partprobe [/dev/DEVICE]

本文鏈接:http://www.thecarconnectin.com/33903.html

linux軟件包管理

linux文件系統管理

網友評論comments

發表回復

您的電子郵箱地址不會被公開。

暫無評論

Copyright ? 2012-2022 YUNWEIPAI.COM - 運維派 京ICP備16064699號-6
掃二維碼
掃二維碼
返回頂部
国产曰批视频免费观看完|久久久一本精品99久久精品66直播|色天使色偷偷AV一区二区三区|国产色秀视频在线播放|亚洲欧洲免费三级网站