LINUX基础第五章:添加磁盘及如何使用
目录
一.系统添加磁盘
在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创建分区的显示如下:
分区是交互式命令,使用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——创建文件系统
mkfs(Make Filesystem)创建文件系统(格式化)
mkfs? -t? 文件系统类型? ?分区设备
分区可能不识别/延迟 可以使用该命令进行刷新 partprobe /dev/sdb(设备)
- mksf.xfs? 格式化? ? ?
- mkfs -t xfs 设备名

mkswap
swap,特殊的文件系统,缓解内存不足,当内存不足时,把硬盘上的空间当做内存使用;添加交换分区的空间
mkswap? +? 分区
mkswap? +? 分区? ?开启 -a? 全部
mkswap? +? 分区? ?关闭? -a? 全部
建swap
- 分区? 修改类型(t)82? ?因为82是可以和Linux进行交互的
- 格式化? mkswap? 设备名
- 开启swapon? 设备名
- 关闭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? ? | 0 | 0 | 
| ?分区? ?? | ?挂载点?? | ?文件系统类型?? | ??权限 | 不备份?? | 开机不检测 | 
查看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 ~]#四.缺点
- 一旦分区,无法修改大小
- 只能使用连续的时间
- 没有备份冗余功能
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!