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创建分区的显示如下:
常用选项 | 命令含义 |
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进行投诉反馈,一经查实,立即删除!