LINUX基础第五章:添加磁盘及如何使用

2023-12-28 17:14:18

目录

一.系统添加磁盘

1.分区

分区方式

主分区

扩展分区

逻辑分区

建立分区

2.文件系统

XFS? ext4

swap

NTFS(xfs)

EXT4

JFS

超级块和Inode Table

二.磁盘管理与文件系统命令使用

1.分区工具

fdisk——检测并确认新硬盘

mkfs——创建文件系统

mkswap

建swap

2.挂载

mount命令

umount命令

3.修复系统

fsck? -y是修复文件系统

4.设置文件系统的自动挂载

挂载规则

查看UUID

三.实验

建立硬盘

查看挂载情况,建立分区

安装文件系统

设置永久挂载

验证

Swap分区

四.缺点


一.系统添加磁盘

在Linux中使用硬盘需要三步

1.建立分区

2.安装文件系统 =格式化

3.挂载 (硬盘和系统内的文件夹做关联,使用该文件夹等于使用硬盘)

1.分区

磁盘最主要的两个性能:磁盘大小和读写性能

分区方式

两种分区方式

  • MBR 只能对2t以下盘进行分区
  • GPT 可以对2t以上的盘进行分区

MBR分区需要依靠第一个扇区(一个扇区512字节)

第一个扇区

mbr 主引导记录,引导硬件找到操作系统是一个446字节小程序,只是grub程序的一部分

512-446=66字节

分区表 记录了分区的开始和结束的位置 一个分区表要占16字节,4*16=64,所以mbr只能分四个主分区

标记位(结束位) 55 aa

2^32*512≈2t

分区表,从第几个扇区开始,到第几个扇区结束,成为一个分区

mbr

主分区

可以直接使用,可以装系统,文件

扩展分区

(特殊的主分区) 为了可以让你分超过四个 不可直接使用,无论你分多大 显示1k,需要再分逻辑分区

扩展分区不是用的,是存储了逻辑分区的分区表

逻辑分区

需要现有扩展分区

GPT分区可以分128个分区,不需要扩展分区和逻辑分区

建立分区

  • fdisk 2t以下
  • gdisk 2t以上
  • parted 即时生效 改了立马改

命令

fdisk 设备名? ? ? 就是查询,查看设备信息

fdisk -l /dev/sda? ? ?只看sda设备

fdisk -l? ? 看所有

lsblk? ? ?查看分区情况

2.文件系统

乌班图和centos6用ext4

文件系统:管理文件的软件

管理 权限 大小 基本属性

默认的文件系统

centos7 xfs

centos6 ext4

XFS? ext4

  • 根据所记录的日志在很短的时间内迅速恢复磁盘文件内容
  • 用优化算法,日志记录对整体文件操作影响非常小
  • 是一个全64-bit的文件系统,最大可以支持8EB的文件系统,1EB=1024PB1PB=1024TB(这里才到TB1TB=1024GB
  • 而支持单个文件则达到8EB能以接近裸设备I/O的性能存储

swap

swap交换分区是系统RAM的补充,swap 分区支持虚拟内存。当没有足够的 RAM 保存系统处理的数据 时会将数据写入 swap 分区,当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过 多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空间还会掩盖内存不足

NTFS(xfs)

NTFS文件系统所具备3个功能:错误预警功能、磁盘自我修复功能和日志功能,单个文件64GB

EXT4

Extended file system 适用于那些分区容量不是太大,更新也不频繁的情况,例如 /boot 分 区是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件 (16TB)、最大1EB的文件系统,以及速度的提升1EB=1024PB=1024*1024TB

JFS

主要是为满足服务器的高吞吐量和可靠性需求而设计、开发的。单个文件最大限制16TB,该文件系统最大支持1PB的容量。1PB=1024TB

超级块和Inode Table

  • 超级块(super block) 负责描述 当前这个分区有哪些块组, 从哪里开始从哪里结束
  • 块组描述符表(GDT)ext文件系统每一个块组信息使用32字节描述,这32个字节称为块组描述符,所有块组的块组描述符组成块组描述符表GDT(group descriptor table)。虽然每个块组都需要块组描述符来记录块组的信息和属性元数据,但是不是每个块组中都存放了块组描述符。将所有块组的块组信息组成一个GDT保存,并将该GDT存放于某些块组中,类似存放superblock和备份superblock的块
  • 块位图(block bitmap): 描述此块是否使用 0 未使用 1使用
  • 节点位图 (inode bitmap): inode节点 位图 0 未使用 1使用

二.磁盘管理与文件系统命令使用

1.分区工具

lsblk——列出块设备

fdisk——管理MBR分区

gdisk——管理GPT分区

parted——即时生效(不推荐)

fdisk——检测并确认新硬盘

fdisk功能是查看或管理磁盘分区

fdisk? ?设备名? 是查询该设备的分区

fdisk? ?-l? /dev/sda? 只看sda设备

fdisk? -l? ?是显示全部设备

echo "- - -"> /sys/class/scsi_host/host0/scan????代表刷新接口

分区是交互式命令,使用fdisk创建分区的显示如下:

常用选项命令含义
mprint this menu获取帮助
pprint the partition table打印分区表
nadd a new partition添加一个新分区
ddelete a partition删除分区
tchange a partition's system id更改分区的系统id
wwrite table to disk and exit将表写入磁盘并退出
qquit without saving changes不保存更改而退出
tchange a partition's system id更改系统分区的系统ID
T显示系统文件类型

mkfs——创建文件系统

mkfs(Make Filesystem)创建文件系统(格式化)

mkfs? -t? 文件系统类型? ?分区设备

分区可能不识别/延迟 可以使用该命令进行刷新 partprobe /dev/sdb(设备)

  • mksf.xfs? 格式化? ? ?
  • mkfs -t xfs 设备名

mkswap

swap,特殊的文件系统,缓解内存不足,当内存不足时,把硬盘上的空间当做内存使用;添加交换分区的空间

mkswap? +? 分区

mkswap? +? 分区? ?开启 -a? 全部

mkswap? +? 分区? ?关闭? -a? 全部

建swap
  1. 分区? 修改类型(t)82? ?因为82是可以和Linux进行交互的
  2. 格式化? mkswap? 设备名
  3. 开启swapon? 设备名
  4. 关闭swap
  • swapoff? 设备名? ? 只关设备名中的空间
  • swapoff -a? ?关全部的swap空间

2.挂载

mount命令

挂载文件系统、ISO镜像到指定文件夹

mount? [-t类型]? 存储设备? 挂载点目录

mount? -o? loop? ISO镜像文件? 挂载点目录

mount -a? 重新挂载

mount /dev/sdb1 /mnt

umount命令

卸载已挂载的文件系统

umount? 存储设备位置

umount? 挂载点目录

3.修复系统

修复系统之前一定要先解挂载

fsck? -y是修复文件系统

badblocks? ?命令是检测磁盘坏道?

4.设置文件系统的自动挂载

/etc/fstab配置文件? ??vim /etc/fstab可设置永久挂载

包含需要开机后自动挂载的文件系统记录

挂载规则
  • 一个挂载点同一时间只能挂载一个设备
  • 一个挂载点同一时间挂载了多个设备,只能看到最后一个设备的数据,其它设备上的数据将被隐藏
  • 一个设备可以同时挂载到多个挂载点
  • 通常挂载点一般是已存在空的目录
dev/sdb1??/mailbox?xfs? ???defaults? ?00
?分区? ???挂载点???文件系统类型????权限不备份??开机不检测
查看UUID

三.实验

建立硬盘

查看挂载情况,建立分区

[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
 
 
##查看挂载情况

Swap分区

[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 ~]#

四.缺点

  • 一旦分区,无法修改大小
  • 只能使用连续的时间
  • 没有备份冗余功能

文章来源:https://blog.csdn.net/zk584715834/article/details/135248970
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。