linux 系统磁盘管理体系

目录

linux 系统磁盘管理体系

一、磁盘的基本概念

linux 系统磁盘管理体系

1.什么是磁盘?

磁盘就像是森林,是所有硬式存储的统称,如最早出现的软盘,现在的硬盘,都是磁盘中的一部分。

2.什么是软盘?

磁盘开始指的是1.44MB的3.5英寸磁盘,这是很早时候的电脑储存盘,也叫软盘。

软盘在如今已经很少被使用了,使用软盘需要安装软盘驱动。软盘容量小,容易损坏。随着数据的大量增长,软盘已经不满足日益所需的数据存储需求,如是,硬盘便被研发出来。

3.什么是硬盘?

硬盘就是计算机中的最大的存储装置了,就是将磁盘的储存片装到硬质金属盒子里可以得到更好的保护,而且在使用寿命上也比软盘优越得多,只有低格才对硬盘有很大的伤害,其它的读写是不要紧的,也就叫硬盘。

4.磁盘与软盘硬盘的关系?

磁盘是一种统称,即是一开始的软盘,又是现如今的硬盘,但是在现在,说起磁盘,都指的是硬盘。

二、磁盘的内部结构

linux 系统磁盘管理体系

linux 系统磁盘管理体系

1.磁头(Head)

盘面数量==磁头数量

作用:用来写入和读取数据的

径向运动寻道

2.磁道(Track)

从外面到里面最外面是0磁道

3.扇区(Sector)

磁道上面的最小的单位

默认大小512字节

4.柱面(Cylinder)

不同盘面上面的相同的磁道组成的圆柱体

不同盘面上的相同的呼啦圈组成的圆柱体

磁盘默认是按照柱面进行读写

磁头之间的切换速度接近于光速

磁头径向运动-寻道机械运动慢

5.单元块(Units)

磁盘是按柱面进行读写的,表示一个柱面的大小

6.计算磁盘大小

磁盘大小=柱面的大小*柱面的数量

柱面的大小=一个磁道的大小*磁头数量

一个磁道的大小=一个扇区的大小*扇区数量/每个磁道

fdisk 查看磁盘详细信息

echo + bc

awk

三、磁盘的外部结构

1.磁盘主轴转速

rpm(round per minute)

10k rpm

15k rpm

5400 rpm

7200 rpm

2.磁盘盘片(用于存储数据)

3.磁头(用于读取数据)

四、磁盘的接口及类型

1.SATA 机械 给自己人使用的时候 备份 性能要求不高 大量容量 线下服务 10k rpm 2T 3T 4T

2.SAS 服务器标配 线上/生产环境使用 15k 300G 600G 10k 7.2k

3.PCI-E 大量的读写,要求很高的性能,数据量小

4.IDE,SCSI (已经被淘汰)

5.SATA III 与 SAS (企业使用较多)

M.2接口是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来的mSATA接口。无论是更小巧的规格尺寸,还是更高的传输性能,M.2都远胜于mSATA

M2接口百度百科

你了解M.2固态硬盘吗?

装机到底要不要买M.2接口的SSD?

SATA、MSATA、PCIE和M2都是什么?

固态硬盘SATA和MSATA有什么区别?

https://baike.baidu.com/item/m.2接口

http://baijiahao.baidu.com/s?id=1604321789851430125&wfr=spider&for=pc

http://www.sohu.com/a/253988990_610530

http://www.sohu.com/a/229021919_463982

https://zhidao.baidu.com/question/754765227221408324.html

  • 机械和固态的对比
机械(HDD)			固态(SSD)
容量大价格低 容量小价格高
抗击打能力弱 抗击打能力高
读写速度稍慢 读写速度很快
数据恢复易 数据恢复难
使用时间无限 使用时间1-2w次

五、fdisk磁盘分区实践

适用于磁盘小于2TB的磁盘,分区类型MBR,主分区4或主分区3+扩展分区(逻辑分区+…),分区后需要保存后生效

MBR位置:0磁头0磁道1扇区。

前446字节 mbr 主引导记录**

64字节的分区表

55AA 表示的是结束标记

linux 系统磁盘管理体系

第一步:添加硬盘

模拟环境:

虚拟机增加一块10GB硬盘

linux 系统磁盘管理体系

linux 系统磁盘管理体系

linux 系统磁盘管理体系

linux 系统磁盘管理体系

linux 系统磁盘管理体系

linux 系统磁盘管理体系

linux 系统磁盘管理体系

第二步:重启虚拟机 reboot

第三步:检查是否识别出磁盘lsblk

[root@gjy ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 18.5G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 7G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 5G 0 part
sdc 8:32 0 3T 0 disk
sdd 8:48 0 200G 0 disk
sr0 11:0 1 4.3G 0 rom

第四步 : 开始创建分区 fdisk /dev/sdb

[root@gjy ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them.
Be careful before using the write command. Command (m for help): #如果回复m,每个参数含义 Command (m for help):
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
c toggle the dos compatibility flag #切换dos兼容模式
** d delete a partition #删除分区
g create a new empty GPT partition table #创建新的空白GPT分区表
G create an IRIX (SGI) partition table #创建IRIX (SGI)分区表
** l list known partition types #显示分区类型
** m print this menu #显示帮助菜单
** n add a new partition #新建分区
o create a new empty DOS partition table #创建新的空白分区表
** p print the partition table #显示分区表的信息
** q quit without saving changes #不保存退出
s create a new empty Sun disklabel #创建新的Sun磁盘标签
t change a partitions system id #修改分区ID,可以通过l查看id
u change display/entry units #修改容量单位,磁柱或扇区
v verify the partition table #检验分区表
** w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
 分区具体过程(分4个主分区)

 1. 输入n进行分区
有时输入信息不正确,利用ctrl+u ctrl+backspace进行错误信息删除
#创建一个1G 的分区
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
Partition number (1-4, default 1):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +1G
Partition 1 of type Linux and of size 1 GiB is set 2. 输入p查看分区
Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5b38e62c Device Boot Start End Blocks Id System #一个分区
/dev/sdb1 2048 2099199 1048576 83 Linux #创建2G 的分区
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p):
Using default response p
Partition number (2-4, default 2):
First sector (2099200-41943039, default 2099200):
Using default value 2099200
Last sector, +sectors or +size{K,M,G} (2099200-41943039, default 41943039): +2G
Partition 2 of type Linux and of size 2 GiB is set #查看分区
Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5b38e62c Device Boot Start End Blocks Id System # 变成了2个分区
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 83 Linux
#创建7G 的分区
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p):
Using default response p
Partition number (3,4, default 3):
First sector (6293504-41943039, default 6293504): +7G
Last sector, +sectors or +size{K,M,G} (14680064-41943039, default 41943039):
Using default value 41943039
Partition 3 of type Linux and of size 13 GiB is set #查看分区
Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5b38e62c Device Boot Start End Blocks Id System #变成了3个分区
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 83 Linux
/dev/sdb3 14680064 41943039 13631488 83 Linux #删除第三个分区
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 is deleted
#再次查看分区
Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5b38e62c Device Boot Start End Blocks Id System #只剩下前两个分区
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 83 Linux #创建一个拓展分区,按e 或者默认剩余的全给拓展分区
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e):
Using default response e
Selected partition 4
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039):
Using default value 41943039
Partition 4 of type Extended and of size 10 GiB is set Command (m for help): p Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x5b38e62c Device Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
/dev/sdb2 2099200 6293503 2097152 83 Linux
/dev/sdb3 20973568 41943039 10484736 5 Extended #保存退出 Command (m for help): w
The partition table has been altered! Calling ioctl() to re-read partition table.
Syncing disks.

拓展:


设备名称 分区信息 设备类型
/dev/sda /dev/sda1 第一块物理磁盘第一分区
/dev/sdb /dev/sdb2 第二块磁盘第二个分区
/dev/vdd /dev/vdd4 第四块虚拟磁盘的第四个分区 系统中分区由数字编号表示,1-4表示给主分区使用和扩展分区,逻辑分区从5开始
详细可参考下面网站:
https://baike.baidu.com/item/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95/7612638 前面我们已经提到过MBR分区表只能分配4个主分区,但现在还有一种新型的分区表GPT,GPT支持分配128个主分区。注意MBR与GPT之间不能互转,会导致数据丢失。
详细可参考下面网站:
http://www.360doc.com/content/18/0614/22/6140124_762487520.shtml

显示磁盘分区信息的命令

[root@gjy ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 48G 3.0G 45G 7% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 18M 973M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 197M 105M 93M 54% /boot
/dev/sr0 4.3G 4.3G 0 100% /mnt
tmpfs 199M 0 199M 0% /run/user/0
tmpfs 199M 0 199M 0% /run/user/1011
[root@gjy ~]# du -sh /etc
166M /etc
[root@gjy ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.8G 0 part /
sr0 11:0 1 4.3G 0 rom /mnt 虚拟机添加磁盘分别为20G 3T,添加完成后要重启虚拟机
[root@gjy ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Jul 16 18:33 /dev/sda
brw-rw----. 1 root disk 8, 1 Jul 16 18:33 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jul 16 18:33 /dev/sda2
brw-rw----. 1 root disk 8, 3 Jul 16 18:33 /dev/sda3
brw-rw----. 1 root disk 8, 16 Jul 16 18:33 /dev/sdb
brw-rw----. 1 root disk 8, 32 Jul 16 18:33 /dev/sdc
[root@gjy ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 50G 0 disk
├─sda1 8:1 0 200M 0 part /boot
├─sda2 8:2 0 2G 0 part [SWAP]
└─sda3 8:3 0 47.8G 0 part /
sdb 8:16 0 20G 0 disk
sdc 8:32 0 3T 0 disk
sr0 11:0 1 4.3G 0 rom fdisk 只支持MBR分区表,适用于2TB以下的分区。
[root@web ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

第五步: 格式化分区,并创建文件系统 mkfs.xfs == mkfs -t xfs,只能对分区格式化,不能直接对磁盘格式化

[root@gjy ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1 isize=512 agcount=4, agsize=65536 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=262144, 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

第六步: 挂载

临时挂载 mount /dev/sdb1 /mnt/data2

[root@web ~]# mkdir   /mnt/data2  创建目录
[root@web ~]# ll /data2
total 0
[root@gjy ~]# mount /dev/sdb1 /mnt/data2 ## 临时挂载
[root@gjy ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda3 19399680 1720548 17679132 9% /
devtmpfs 1012904 0 1012904 0% /dev
tmpfs 1023744 0 1023744 0% /dev/shm
tmpfs 1023744 9112 1014632 1% /run
tmpfs 1023744 0 1023744 0% /sys/fs/cgroup
/dev/sda1 508580 122100 386480 25% /boot
tmpfs 204752 0 204752 0% /run/user/0
/dev/sdb1 1038336 32992 1005344 4% /mnt/data2

永久挂载 vim /etc/fstab

[root@gjy ~]# vim /etc/fstab
[root@gjy ~]# tail -1 /etc/fstab
/dev/sdb1 /data1 xfs defaults 0 0 (uid)或者设备名 挂载点 文件系统类型 默认参数 是否备份 是否检查磁盘

卸载umount

umount /dev/sdb2

查看df

df

挂载只读文件mount -r

mount -r  /dev/sdb2

重新挂载mount -a

mount -a /dev/sdb2

第七步 :dd if=/dev/zero of=/data2/test.txt bs=10M count=50 可以在挂载的目录下添加文件

[root@gjy ~]# dd if=/dev/zero of=/data2/test.txt bs=10M count=50
50+0 records in
50+0 records out
524288000 bytes (524 MB) copied, 6.00042 s, 87.4 MB/s
[root@gjy ~]# ll /data2
total 512000
-rw-r--r--. 1 root root 524288000 Jul 16 19:43 test.txt

六、gdisk 分区

分区表是GPT,支持更大的容量分区,128个。

需要安装 yum install -y gdisk

第一步:添加硬盘,3TB,在VMware里面添加

第二步:查看是否能识别出来

[root@gjy ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 500M 0 part /boot
├─sda2 8:2 0 1G 0 part [SWAP]
└─sda3 8:3 0 18.5G 0 part /
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 1G 0 part
├─sdb2 8:18 0 2G 0 part
├─sdb3 8:19 0 7G 0 part
├─sdb4 8:20 0 1K 0 part
└─sdb5 8:21 0 5G 0 part
sdc 8:32 0 3T 0 disk
sdd 8:48 0 200G 0 disk
sr0 11:0 1 4.3G 0 rom
[root@gjy ~]# ll /dev/sd*
brw-rw----. 1 root disk 8, 0 Jul 17 00:47 /dev/sda
brw-rw----. 1 root disk 8, 1 Jul 17 00:47 /dev/sda1
brw-rw----. 1 root disk 8, 2 Jul 17 00:47 /dev/sda2
brw-rw----. 1 root disk 8, 3 Jul 17 00:47 /dev/sda3
brw-rw----. 1 root disk 8, 16 Jul 17 00:47 /dev/sdb
brw-rw----. 1 root disk 8, 17 Jul 17 00:47 /dev/sdb1
brw-rw----. 1 root disk 8, 18 Jul 17 00:47 /dev/sdb2
brw-rw----. 1 root disk 8, 19 Jul 17 00:47 /dev/sdb3
brw-rw----. 1 root disk 8, 20 Jul 17 00:47 /dev/sdb4
brw-rw----. 1 root disk 8, 21 Jul 17 00:47 /dev/sdb5
brw-rw----. 1 root disk 8, 32 Jul 17 00:47 /dev/sdc
brw-rw----. 1 root disk 8, 48 Jul 17 00:47 /dev/sdd

第三步 :进行分区

[root@gjy ~]# gdisk /dev/sdc
GPT fdisk (gdisk) version 0.8.10 Partition table scan:
MBR: not present
BSD: not present
APM: not present
GPT: not present Creating new GPT entries.
Command (? for help): ?
b back up GPT data to a file #将GPT数据备份到文件中
c change a partition's name #更改分区的名称
** d delete a partition #删除分区
i show detailed information on a partition #显示分区的详细信息
** l list known partition types #列出已知的分区类型
** n add a new partition #添加一个新的分区
o create a new empty GUID partition table (GPT) #创建一个新的空GUID分区表(GPT)
** p print the partition table #打印分区表
** q quit without saving changes #没有保存更改就退出
r recovery and transformation options (experts only) #恢复和转换选项(仅限专家使用)
s sort partitions #年代分类分区
t change a partition's type code #不要更改分区的类型代码
v verify disk #验证磁盘
** w write table to disk and exit #将表写入磁盘并退出
x extra functionality (experts only) #额外功能(仅限专家使用)
** ? print this menu #打印菜单 Command (? for help): n #创建分区
Partition number (1-128, default 1): #选择分区表的编号,选择默认,直接回车键
First sector (34-6442450910, default = 2048) or {+-}size{KMGTP}: #扇区的开始位置,选择默认,直接回车键
Last sector (2048-6442450910, default = 6442450910) or {+-}size{KMGTP}: #该分区扇区的结束位置,选择默认,只做一个分区,直接回车键,最大值。
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): #选择默认,直接退出
Changed type of partition to 'Linux filesystem'
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L #显示其他文件类型
0700 Microsoft basic data 0c01 Microsoft reserved 2700 Windows RE
3000 ONIE boot 3001 ONIE config 4100 PowerPC PReP boot
4200 Windows LDM data 4201 Windows LDM metadata 7501 IBM GPFS
7f00 ChromeOS kernel 7f01 ChromeOS root 7f02 ChromeOS reserved
8200 Linux swap 8300 Linux filesystem 8301 Linux reserved
8302 Linux /home 8400 Intel Rapid Start 8e00 Linux LVM
a500 FreeBSD disklabel a501 FreeBSD boot a502 FreeBSD swap
a503 FreeBSD UFS a504 FreeBSD ZFS a505 FreeBSD Vinum/RAID
a580 Midnight BSD data a581 Midnight BSD boot a582 Midnight BSD swap
a583 Midnight BSD UFS a584 Midnight BSD ZFS a585 Midnight BSD Vinum
a800 Apple UFS a901 NetBSD swap a902 NetBSD FFS
a903 NetBSD LFS a904 NetBSD concatenated a905 NetBSD encrypted
a906 NetBSD RAID ab00 Apple boot af00 Apple HFS/HFS+
af01 Apple RAID af02 Apple RAID offline af03 Apple label
af04 AppleTV recovery af05 Apple Core Storage be00 Solaris boot
bf00 Solaris root bf01 Solaris /usr & Mac Z bf02 Solaris swap
bf03 Solaris backup bf04 Solaris /var bf05 Solaris /home
bf06 Solaris alternate se bf07 Solaris Reserved 1 bf08 Solaris Reserved 2
bf09 Solaris Reserved 3 bf0a Solaris Reserved 4 bf0b Solaris Reserved 5
c001 HP-UX data c002 HP-UX service ea00 Freedesktop $BOOT
eb00 Haiku BFS ed00 Sony system partitio ed01 Lenovo system partit
Press the <Enter> key to see more codes: #翻页
ef00 EFI System ef01 MBR partition scheme ef02 BIOS boot partition
fb00 VMWare VMFS fb01 VMWare reserved fc00 VMWare kcore crash p
fd00 Linux RAID
Hex code or GUID (L to show codes, Enter = 8300): #选择默认,直接回车
Changed type of partition to 'Linux filesystem' Command (? for help): p #打印分区表信息
Disk /dev/sdc: 6442450944 sectors, 3.0 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): D741E6D0-5420-4C7E-96EC-C85BC3CAB691
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 6442450910
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB) Number Start (sector) End (sector) Size Code Name
1 2048 6442450910 3.0 TiB 8300 Linux filesystem Command (? for help): w #保存并退出 Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!! Do you want to proceed? (Y/N): y #确认操作
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.

第四步:格式化,并创建文件系统,centos7系列,统一使用(系统默认)xfs文件系统

[root@gjy ~]# mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1 isize=512 agcount=4, agsize=201326527 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=805306107, imaxpct=5
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=393215, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=

第五步:挂载,先创建一个挂载点

[root@gjy ~]# mkdir /gpt            #创建目录
[root@gjy ~]# mount /dev/sdc1 /gpt #挂载sdc1到目录下
[root@gjy ~]# df -h| grep sdc1 #查看挂载
/dev/sdc1 3.0T 33M 3.0T 1% /gpt
[root@gjy ~]# dd if=/dev/zero of=/gpt/test.txt bs=10M count=20 #写入文件
20+0 records in
20+0 records out
209715200 bytes (210 MB) copied, 0.683578 s, 307 MB/s
[root@gjy ~]# ll -h /gpt #查看
total 200M
-rw-r--r--. 1 root root 200M Jul 17 09:34 test.txt
[root@gjy ~]# umount /gpt 卸载
[root@gjy ~]# ll /gpt 查看
total 0
[root@gjy ~]# mkdir /data3 #创建目录路
[root@gjy ~]# mount /dev/sdc1 /data3 #挂载
[root@gjy ~]# ll /data3 #查看
total 204800
-rw-r--r--. 1 root root 209715200 Jul 17 09:34 test.txt

永久挂载

[root@gjy ~]# vim /etc/fstab
[root@gjy ~]# tail -1 /etc/fstab
/dev/sdc1 /data3 xfs defaults 0 0
[root@gjy ~]# mount -a
[root@gjy ~]# echo $?
0
[root@gjy ~]# df -h |grep sdc1
/dev/sdc1 3.0T 233M 3.0T 1% /data3

七、parted 高级分区工具。了解即可

挂载方式: mount

模拟环境:

虚拟机增加一块100M硬盘(测试使用)

print 显示磁盘分区信息

mklabel mktable 创建磁盘分区表

mkpart 创建分区

rm 删除分区

q 退出不保存

mount 挂载命令

mount 挂载的命令
-t 文件系统
-o 指定挂载的参数
-a 重新挂载配置/etc/fstab文件的分区表
示例:
# -t 指定挂载文件系统
[root@gjy ~]# umount /dev/sdc1
[root@gjy ~]# mkdir /data3
[root@gjy ~]# mount -t xfs /dev/sdc1 /data3
[root@gjy ~]# df -h |grep sdc1
/dev/sdc1 3.0T 201M 3.0T 1% /data3
# -o 指定挂载的参数
[root@gjy ~]# umount /dev/sdc1
[root@gjy ~]# mkdir /data4
[root@gjy ~]# mount -o ro /dev/sdc1 /data4
[root@gjy ~]# df -h |grep sdc1
/dev/sdc1 3.0T 201M 3.0T 1% /data4 # -a 重新挂载配置/etc/fstab文件的分区表
[root@gjy ~]# mount -a

umount 卸载命令

umount 卸载命令
-l 强制卸载
-f 勉强下载不一定成功,退出当前目录进行下载
-l :  强制卸载
-f : 勉强的卸载,不一定能卸载成功,最好退出当前目录再卸载
[root@gjy ~]# umount /dev/sdc1
[root@gjy ~]# umount -f /data #勉强的卸载,卸载不成功
umount: /data: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@oldboy data]# umount -lf /data #强制卸载
[root@oldboy data]# cd
[root@oldboy ~]# mount -a
[root@oldboy ~]# cd /data
[root@oldboy data]# umount /data #当面目录无法卸载该目录
umount: /data: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@oldboy data]# umount -l /data #强制卸载成功

最好是使用uuid挂载,uuid号都是唯一码

[root@gjy ~]# blkid|grep sdc
/dev/sdc1: UUID="1ed78be5-11df-4217-a55e-a24649c838da" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="a58b5210-41b0-438a-ab7a-3de8780fef5d"
[root@gjy ~]# mount UUID="1ed78be5-11df-4217-a55e-a24649c838da" /data3
[root@gjy ~]# df -h|grep sdc
/dev/sdc1 3.0T 233M 3.0T 1% /data3

/etc/fstab 文件的详细信息

/dev/sdb1   /data1   xfs    defaults   0 0

#第一列:挂载的设备
#第二列: 挂载点
#第三列: 文件系统的类型
#第四列: 挂载的参数,defaults表示默认
参数 含义
async/sync 是否同步方式运行,默认async(异步)。
user/nouser 是否允许普通用户使用mount命令挂载,默认nouser。
exec/noexec 是否允许可执行文件执行,默认exec。
suid/nosuid 是否允许存在suid属性的文件,默认suid。
auto/noauto 执行mount -a时,此文件系统是否被主动挂载,默认auto。
rw/ro 是否只读或者读写模式进行挂载。默认rw。
default 具有rw,suid,exec,auto,nouser,async等默认参数的设定。 #第五列: 是否使用dump 进行备份,默认选择0
0:不备份
1:启用备份,每天进行备份
2: 不定时的进行备份 #第六列: 是否通过fsck这个命令检测,默认是0
0:不检查
1: 检查,如果存在/分区,这个值只能是/分区上
0:检查。按照

八、swap的介绍

企业案例:如环境内存不够用,大量占用swap

方法1 :增加硬盘内存方式:

第一步:临时增加内存,需要找个1G 的分区

第二步:使这个分区称为swap

[root@gjy ~]# mkswap /dev/sdb2
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=5475acbe-2109-477d-ae8d-359c5eee6b8c
[root@gjy ~]# echo $?
0

第三步: 扩容swap

#扩容
[root@gjy ~]# swapon /dev/sdb2

第四步: 检查

[root@gjy ~]# free -m
total used free shared buff/cache available
Mem: 1999 113 1656 8 229 1710
Swap: 3071 0 3071

第五步: 缩减swap 内存

#缩减
[root@gjy ~]# swapoff /dev/sdb2
[root@gjy ~]# free -m
total used free shared buff/cache available
Mem: 1999 112 1658 8 229 1711
Swap: 1023 0 1023

第六步: 禁止所有的swap

#禁止使用swap
[root@gjy ~]# swapoff -a
[root@gjy ~]# free -m
total used free shared buff/cache available
Mem: 1999 111 1659 8 228 1712
Swap: 0 0 0

第七步: 恢复swap

[root@gjy ~]# swapon -a
[root@gjy ~]# free -m
total used free shared buff/cache available
Mem: 1980 98 1694 9 187 1697
Swap: 2047 0 2047

第八步:检查swap 在使用的设备

[root@gjy ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 1048572 0 -2

方法2:通过一个大文件的方式添加临时内存

文件添加swap内存(文件要把权限改为600)
[root@gjy ~]# dd if=/dev/zero of=/data/swap_file bs=100M count=10 # 当前目录创建100M的文件
10+0 records in
10+0 records out
1048576000 bytes (1.0 GB) copied, 3.42122 s, 306 MB/s
[root@gjy ~]# ll /data/swap_file #查看目录下文件
-rw-r--r--. 1 root root 1048576000 Jul 17 11:04 /data/swap_file
[root@gjy ~]# file /data/swap_file #查看文件类型
/data/swap_file: data
[root@gjy ~]# mkswap -f /data/swap_file #将文件格式为swap文件类行,格式文件需要使用 -f 参数
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=d912d4c3-3190-4ab0-bec4-fb839de468ab
[root@gjy ~]# file /data/swap_file #再次查看文件类型
/data/swap_file: Linux/i386 swap file (new style), version 1 (4K pages), size 255999 pages, no label, UUID=d912d4c3-3190-4ab0-bec4-fb839de468ab
[root@gjy ~]# free -m #查看swap内存
total used free shared buff/cache available
Mem: 972 90 167 7 714 708
Swap: 1023 0 1023
[root@gjy ~]# swapon /data/swap_file #添加swap内存
swapon: /data/swap_file: insecure permissions 0644, 0600 suggested.
[root@gjy ~]# free -m # 再次查看swap内存
total used free shared buff/cache available
Mem: 972 90 166 7 714 707
Swap: 2023 0 2023

九、单用户模式

方法1:

[root@gjy ~]# vim /etc/fstab           #删除uuid的u,颜色变了,保存退出`
[root@gjy ~]# mount -a
[root@gjy ~]# echo $?
0
[root@gjy ~]# reboot #重启
[root@gjy ~]# vim /etc/fstab #再次进入编辑
# /etc/fstab
# Created by anaconda on Wed Jun 12 20:07:04 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=330703d9-76ae-4cf8-bcfa-664eb11c0a89 / xfs defaults 0 0
UUID=0d3f41ae-092f-4a16-a401-8f4bc3c4056e /boot xfs defaults 0 0
UUID=71ba1e2c-5d58-4209-8014-a7fdd4f002d2 swap swap defaults 0 0
/dev/sdd /data xfs defaults 0 0
/dev/sdc1 /data3 xfs defaults 0 0 ~
"/etc/fstab"
"/etc/fstab" E212: Can't open file for writing #"/etc/fstab" E212:无法打开文件进行写入
Press ENTER or type command to continue #按ENTER或type命令继续 文件系统已经被破坏,保存退出不了,可强制退出
[root@gjy ~]# vim /etc/fstab #编辑不了
[root@gjy ~]# ll / 可以查看
total 20
drwxr-xr-x. 3 root root 18 Jun 18 10:57 abc
drwxr-xr-x. 3 root root 17 Jun 18 10:57 backup
lrwxrwxrwx. 1 root root 7 Jun 12 20:07 bin -> usr/bin
... [root@gjy ~]# touch 123
touch: cannot touch ‘123’: Read-only file system #只读模式,写入不了文件
[root@gjy ~]# mount -o rw,remount /
mount: can't find UUID=30703d9-76ae-4cf8-bcfa-664eb11c0a89
[root@gjy ~]# blkid #查看原本的uuid,可看出对应的原来的uuid号码
/dev/sda1: UUID="0d3f41ae-092f-4a16-a401-8f4bc3c4056e" TYPE="xfs"
/dev/sda2: UUID="71ba1e2c-5d58-4209-8014-a7fdd4f002d2" TYPE="swap"
/dev/sda3: UUID="330703d9-76ae-4cf8-bcfa-664eb11c0a89" TYPE="xfs"
/dev/sdb1: UUID="32ec1510-c863-4ff1-bcf3-0af0e151f0eb" TYPE="xfs"
/dev/sdb2: UUID="5475acbe-2109-477d-ae8d-359c5eee6b8c" TYPE="swap"
/dev/sdc1: UUID="1ed78be5-11df-4217-a55e-a24649c838da" TYPE="xfs" PA
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE
/dev/sdd: UUID="715a7cea-251b-4f4b-a526-33c198b78aae" TYPE="xfs"
[root@gjy ~]# mount -o rw,remount UUID=330703d9-76ae-4cf8-bcfa-664eb11c0a89 #修改成rw,读写模式
[root@gjy ~]# vim /etc/fstab #再改回正确的uuid

方法2:进入单用户模式

1.点击e 进入单用户模式,这里手速要快点,因为只有5秒钟的时间会跳过

2.找到Linux16把ro只读 改成rw读写,添加命令解释器( init=/bin/bash ),关闭selinux (enforcing=0)

3.再按ctrl +x ,启动单用户模式

4.如要修改用户密码,可passwd username 修改

5.再输入单用户重启的命令(exec /sbin/init )

6.进入系统之后

需编辑selinux配置文件vim /etc/sysconfig/selinx

SELINUX=enforcing修改为 SELINUX=disabled (即把selinux关闭)

7.再reboot重启之后,密码也可用(如果不关闭selinux,重启之后原密码和修改之后的密码登陆都进不去)

上一篇:ACM训练计划建议(写给本校acmer,欢迎围观和指正)


下一篇:Linux系统磁盘分区、删除分区、格式化、挂载、卸载、开机自动挂载的方法总结