目录
2.1MBR(Master Boot Record)——主引导记录
在Linux系统中使用磁盘空间,分三步
1.建立分区
2.安装文件系统? ——管理文件大小、权限、日志
3.挂载使用? ?——硬盘和系统内的文件夹做关联,使用该文件夹等于使用硬盘
Linux系统中一切皆文件,文件格式为“b”块设备,一般硬盘设备都放在/dev文件夹下;/dev/sda代表第一块硬盘(s代表硬盘接口,接口类型不同,传输速率不同;d——disk代表磁盘;a——第一块盘;如果是sdb是代表第二块盘)
MBR与磁盘分区
Windows中是可以不分区的
Linux中一定要分区才可以使用硬盘
为什么要分区
- 优化I/O性能 读写? ?—— input读? ?output写
- 实现磁盘空间配额限制
- 提高修复速度
- 隔离系统和程序
- 安装多个OS
- 采用不同文件系统
磁盘最主要的两个性能:磁盘大小、读写性能
分区是为了提高磁盘的性能,目前有两种分区方式MBR、GPT
- MBR:2T以下的硬盘? ? ? ? ? ? ? ? ? ? fdisk
- GPT:可以支持2T以上的硬盘? ? ? gdisk
MBR位于硬盘第一个物理扇区处
MBR中包含硬盘的主引导程序和硬盘分区表
分区表中有4个分区记录区,每个分区记录区占16个字节
Linux中将硬盘、分区等设备均表示为文件
MBR分区最多只能分4个区,由于MBR用4个字节存储分区总扇区数,最大可以表示2的32次方,
一个扇区512字节,那么分区的容量或者磁盘容量都不能超过2TB。 常见的硬盘可以划分为主分
区、扩展分区和逻辑分区,通常情况下主分区至少有一个,最多有四个;而扩展分区可以看成是
一个特殊的主分区类型,可以没有,最多有一个,在扩展分区中可以建立逻辑分区。主分区一般
用来安装操作系统,扩展分区则多用来存储文件数据。且主分区+扩展分区总共不能超过4个;逻
辑分区可以有若干个。MBR分区需要依靠第一个扇区(一个扇区512字节)
MRB主引导记录(Master Boot Record) | 分区1 | 分区2 | 分区3 | 分区4 | 标记位(55、AA) | ||
446字节 | 16字节 | 16字节 | 16字节 | 16字节 | 2字节 | ||
446字节 | 64字节 | 2字节 | |||||
512字节 |
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分区结构分为4个区域:
GPT头
分区表
GPT分区
备份区域
硬盘中的主分区数目只有4个
主分区和扩展分区的序号限制在1~4
扩展分区再分为逻辑分区
逻辑分区的序号将始终从5开始
文件系统是操作系统用于明确存储设备或分区上的文件的使用方法和数据结构,即在存储设备上组织使用文件的方法。操作系统中负责管理和存储文件信息的软件结构称为文件管理系统,简称文件系统,从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体的说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,安全控制,日志,压缩,加密等。
Linux系统常见的为ext4;Windows系统常见的为ntfs
文件系统主要是修改文件的权限、大小、时间
文件系统用来管理(增删改查回复)文件的程序
文件系统的组成
Centos7默认使用XFS ;Centos6默认使用Ext4?
swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据 时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过 多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足。
最大只能支持32GB分区,单个文件也只能支持最大4GB
NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB
Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分 区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件 (16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024*1024TB
主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB
操作系统可以打开文件是和文件系统有关;操作系统是软件的集合
lsblk——列出块设备
fdisk——管理MBR分区
gdisk——管理GPT分区
parted——即时生效(不推荐)
fdisk功能是查看或管理磁盘分区
fdisk? ?设备名? 是查询该设备的分区
fdisk? ?-l? /dev/sda? 只看sda设备
fdisk? -l? ?是显示全部设备
echo "- - -"> /sys/class/scsi_host/host0/scan ? ?代表刷新接口
分区是交互式命令,使用fdisk创建分区的显示如下:
常用选项 | 命令含义 |
m | print this menu获取帮助 |
p | print the partition table打印分区表 |
n | add a new partition添加一个新分区 |
d | delete a partition删除分区 |
t | change a partition's system id更改分区的系统id |
w | write table to disk and exit将表写入磁盘并退出 |
q | quit without saving changes不保存更改而退出 |
t | change a partition's system id更改系统分区的系统ID |
T | 显示系统文件类型 |
mkfs(Make Filesystem)创建文件系统(格式化)
mkfs? -t? 文件系统类型? ?分区设备
分区可能不识别/延迟 可以使用该命令进行刷新 partprobe /dev/sdb(设备)
mksf.xfs? 格式化? ? ? ? mkfs -t xfs 设备名
swap,特殊的文件系统,缓解内存不足,当内存不足时,把硬盘上的空间当做内存使用;添加交换分区的空间
mkswap? +? 分区
mkswap? +? 分区? ?开启 -a? 全部
mkswap? +? 分区? ?关闭? -a? 全部
挂载文件系统、ISO镜像到指定文件夹
mount? [-t类型]? 存储设备? 挂载点目录
mount? -o? loop? ISO镜像文件? 挂载点目录
mount -a? 重新挂载
mount /dev/sdb1 /mnt
卸载已挂载的文件系统
umount? 存储设备位置
umount? 挂载点目录
修复系统之前一定要先解挂载
fsck? -y是修复文件系统
badblocks? ?命令是检测磁盘坏道?
/etc/fstab配置文件? ? vim /etc/fstab可设置永久挂载
包含需要开机后自动挂载的文件系统记录
挂载规则
- 一个挂载点同一时间只能挂载一个设备
- 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
- 一个设备可以同时挂载到多个挂载点
- 通常挂载点一般是已存在空的目录
/dev/sdb1? ? ? /mailbox? ? ? ?xfs? ? ? ? ? ? ? ? defaults? ? ? ? ? ?0? ? ? ? ? ? ? ? ?0
? ?分区? ? ? ? ? ?挂载点? ? ? 文件系统类型? ? ?权限? ? ? ? ? ?不备份? ? ? 开机不检测
blkid
df 查看挂载情况
lsblk? 看磁盘分区情况
一定要点确定
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
##查看当前分区情况
[root@localhost ~]#scan
##使用scan别名刷新硬盘接口
[root@localhost ~]#fdisk /dev/sdb
##建立分区sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x6d9dce28 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
##建立新分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
##主分区
e extended
##扩展分区
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
##保存退出
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]#partprobe /dev/sdb
##刷新
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 10G 0 part
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#mkfs.xfs /dev/sdb1
##安装文件系统,安装可以和Linux系统Centos7交互的xfs文件系统类型
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=655360 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=2621440, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@localhost ~]#mount /dev/sdb1 /mnt
#设置挂载
[root@localhost ~]#df -T
#查看当前挂载情况
文件系统 类型 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 52403200 4762508 47640692 10% /
devtmpfs devtmpfs 917604 0 917604 0% /dev
tmpfs tmpfs 933524 0 933524 0% /dev/shm
tmpfs tmpfs 933524 9304 924220 1% /run
tmpfs tmpfs 933524 0 933524 0% /sys/fs/cgroup
/dev/sda1 xfs 5232640 182368 5050272 4% /boot
tmpfs tmpfs 186708 4 186704 1% /run/user/42
tmpfs tmpfs 186708 20 186688 1% /run/user/0
/dev/sr0 iso9660 4414592 4414592 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 xfs 10475520 32944 10442576 1% /mnt
[root@localhost ~]#mkdir /dev/sdb1
##设置空文件夹使sdb1挂载
[root@localhost ~]#blkid
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="0ebf43c7-c647-4e61-ab4f-cf6c64fb6a0c" TYPE="xfs"
/dev/sda2: UUID="UjOeXH-jU4j-jhcP-JNEN-D0XC-nHtB-SURY2m" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="1501a890-5513-4d10-bb6a-962d94b1e86f" TYPE="xfs"
/dev/mapper/centos-swap: UUID="d61cdfb4-d3d2-411e-b47e-c01c70b686df" TYPE="swap"
/dev/sdb1: UUID="8f6da1cd-4030-46b7-8901-96761940c792" TYPE="xfs"
##查看sdb1的UUID
[root@localhost ~]#vim /etc/fstab
##进入/etc/fstab设置永久挂载
[root@localhost ~]#
[root@localhost ~]#mount -a
##重新挂载 为了安全
[root@localhost ~]#df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 52403200 4761528 47641672 10% /
devtmpfs 917604 0 917604 0% /dev
tmpfs 933524 0 933524 0% /dev/shm
tmpfs 933524 9308 924216 1% /run
tmpfs 933524 0 933524 0% /sys/fs/cgroup
/dev/sda1 5232640 182368 5050272 4% /boot
tmpfs 186708 4 186704 1% /run/user/42
tmpfs 186708 24 186684 1% /run/user/0
/dev/sr0 4414592 4414592 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 10475520 32944 10442576 1% /opt/sdb1
##查看挂载情况
[root@localhost ~]#fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): e
##建扩展分区
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):
将使用默认值 41943039
分区 2 已设置为 Extended 类型,大小设为 10 GiB
命令(输入 m 获取帮助):p
##查看当前分区信息
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd106c41a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 41943039 10484736 5 Extended
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l
##添加逻辑分区
添加逻辑分区 5
起始 扇区 (20975616-41943039,默认为 20975616):
将使用默认值 20975616
Last 扇区, +扇区 or +size{K,M,G} (20975616-41943039,默认为 41943039):+4G
分区 5 已设置为 Linux 类型,大小设为 4 GiB
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd106c41a
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 20973567 10485760 83 Linux
/dev/sdb2 20973568 41943039 10484736 5 Extended
/dev/sdb5 20975616 29364223 4194304 83 Linux
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
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)
正在同步磁盘。
[root@localhost ~]#partprobe
##更新内核的硬盘分区表信息
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part /mnt
├─sdb2 8:18 0 512B 0 part
├─sdb5 8:21 0 4G 0 part
└─sdb6 8:22 0 4G 0 part
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#mkfs.ext4
Usage: mkfs.ext4 [-c|-l filename] [-b block-size] [-C cluster-size]
[-i bytes-per-inode] [-I inode-size] [-J journal-options]
[-G flex-group-size] [-N number-of-inodes]
[-m reserved-blocks-percentage] [-o creator-os]
[-g blocks-per-group] [-L volume-label] [-M last-mounted-directory]
[-O feature[,...]] [-r fs-revision] [-E extended-option[,...]]
[-t fs-type] [-T usage-type ] [-U UUID] [-jnqvDFKSV] device [blocks-count]
[root@localhost ~]#mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1073741824
32 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: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
[root@localhost ~]#blkid
##查询所有分区的UUID
/dev/sr0: UUID="2017-09-06-10-51-00-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sda1: UUID="0ebf43c7-c647-4e61-ab4f-cf6c64fb6a0c" TYPE="xfs"
/dev/sda2: UUID="UjOeXH-jU4j-jhcP-JNEN-D0XC-nHtB-SURY2m" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="1501a890-5513-4d10-bb6a-962d94b1e86f" TYPE="xfs"
/dev/mapper/centos-swap: UUID="d61cdfb4-d3d2-411e-b47e-c01c70b686df" TYPE="swap"
/dev/sdb1: UUID="31b27c82-8392-4933-ba65-87bdd16bd680" TYPE="xfs"
/dev/sdb5: UUID="9f41d4aa-a79e-4711-b17f-c998aa83c4f8" TYPE="ext4"
[root@localhost ~]#vim /etc/fstab
#/dev/mapper/centos-root / xfs defaults 0 0
#UUID=0ebf43c7-c647-4e61-ab4f-cf6c64fb6a0c /boot xfs defaults #0 0
#/dev/mapper/centos-swap swap swap defaults 0 0
#UUID="31b27c82-8392-4933-ba65-87bdd16bd680" /mnt xfs defaults 0 0
#UUID="9f41d4aa-a79e-4711-b17f-c998aa83c4f8" /mnt ext4 defaults 0 0
[root@localhost ~]#mkdir /mnt/sdb5
[root@localhost ~]#mount -a
[root@localhost ~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 60G 0 disk
├─sda1 8:1 0 5G 0 part /boot
└─sda2 8:2 0 54G 0 part
├─centos-root 253:0 0 50G 0 lvm /
└─centos-swap 253:1 0 4G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part /mnt
├─sdb2 8:18 0 512B 0 part
├─sdb5 8:21 0 4G 0 part /mnt
└─sdb6 8:22 0 4G 0 part
sr0 11:0 1 4.2G 0 rom /run/media/root/CentOS 7 x86_64
[root@localhost ~]#
?在Linux系统中建立的分区的缺点:
- 一旦分区,无法修改大小
- 只能使用连续的时间
- 没有备份冗余功能
lsblk? 查看分区系统的情况
lsblk? -f? 查看分区的文件系统
free? 查看内存
top? 可以查看内存和cpu情况
buff? 写缓存
cache? 读缓存
fdisk? 设备名? 2T以下
gdisk? 设备名 2T以上
文件系统两种类型xfs、ext4
mkfs? -t? xfs? 设备名(设备名/dev/sda、/dev/sdb、/dev/sdb1)
mount? 临时挂载
mount? 设备名 挂载点
umount? 解挂载
解挂载失败可能是有人在使用设备或磁盘损坏
有人在使用设备? ?如果想解决该问题需要将挂载的人踢掉
永久挂载需要写到/etc/fstab
设备名 挂载点? 文件系统类型? defaults 0? ?0
修复文件系统前一定要先解挂载
fsck? 设备名? -y
badblock
命令 | 含义 |
lsblk | 查看磁盘及分区情况 |
df | 查看挂载及磁盘剩余量 |
mount | 看详细的挂载情况,挂载权限以及挂载 |
swapoff? -a | 关闭所有的swap分区 |
mkfs | 格式化文件系统 |
fdisk | 可以分区加 - l? 可以查看磁盘信息对2T以下的盘分区 |
gdisk | 可以对2T以上的盘分区 |
fsck | 修复文件系统 |
badblocks | 检测磁盘坏道 |
iostat | 看磁盘的读写性能 |
dd | 看磁盘的读写性能 |
pvcreate | 建立物理卷 |
vgcreate | 建立卷组 |
lvcreate | 建立逻辑卷 |
lvextend | 扩展逻辑卷 |
vgextend | 扩展卷组 |
?五大性能
- cpu? ?top可以查看内存和cpu
- 内存? free
- 磁盘读写? ?iostat
- 磁盘剩余? df
- 网络情况
uname -r
hostname
cat /etc/redhat-release
route -n?
date? 查看当前时间
ip ad 查看ip地址
ifconfig可以看ip地址
cat /etc/resolv.conf 查看dns是否生效
ping? 测试
tcpdump 抓包