Centos磁盘管理 进阶篇

创建分区相关命令:

命令格式:fdisk +设备类型最多只能创建15个分区

1
2
#fdisk -l ------//可列出所有磁盘的相关分区信息
#fdisk -l /dev/sda----//查看sda磁盘的相关分区信息

1

1
2
3
4
5
6
Linux:
Sda[1-4]
S(接口类型)da1:第一个主分区
Sda2:第二个主分区
Sda3:第三个主分区
Sda4:第四个主分区

Sda5:第一个逻辑分区,扩展分区一定是从5开始的,5是逻辑分区开始的标志。

命令格式:fdisk -l /dev/[sh]d[0-9]

2

1
2
3
4
5
d delete a partition——————//删除一个分区
n add a new partition—————//新建一个分区
p print the partition table————//显示当前分区信息
w write table to disk and exit————//保存退出
q quit without saving changes————//不保存退出

System ID————说明这是一个什么样的分区类型,与操作系统相关连。

打算把分区——格式化成什么样的文件系统,就一定要让它的分区ID号跟文件系统类型相匹配。 l list known partition types——各分区类型多对应的system ID————也就是文件系统类型。

83————Linux82Linux swap / So8eLinux LVM逻辑卷85Linux extendedfdLinux raid autoRAID Software Raid

1
2
t change a partition's system id//修改某指定分区的system ID
a toggle a bootable flag//设置可启动标记(设定此分区可以启动操作系统的分

)——————一般很少用到,了解即可。

3

确认无误保存退出

4

再创建两个6G的分区:

5

如图所示:主分区编号只有一个了,要再创建任意两个分区就只能,先建立扩展分区,在扩展分区里面新建逻辑分区。

所以接下来一定是先创建扩展分区

5一定是4下的5所有的逻辑分区一定是在扩展分区之下创建的,这点很重要哦!这里的开始以及结束柱面可使用默认的,一定要把剩下的空间一并给扩展分区,因为,如果不给扩展分区的话就永远也用不上了。这点对新手尤为重要哦,呵呵!

6

7

如果中间写错了,想删除的话可按住ctrl键,再按tab即可轻松删除出错的命令了! 扩展分区是不能直接使用的,因此,必须要再new

一块硬盘只能有一个扩展分区哦!这点请大家一定要记得哦!

8

再新增6G逻辑分区

9

以上这两个分区整个都是在扩展分区内部创建的哦!看清楚了吗?

所以说,逻辑分区一定是在扩展分区内部创建的!如果某个分区不想要了,可以使用dl来删除,在本案例中,可以直接删除4号分区吗? 10貌似,56号分区也都随着扩展分区的删除消失了!所以,此操作一定要谨慎哦!此时唯一的解救办法就是q-------不保存退出就可以了哦,呵呵~ 因为我们的内核还没有做真正的分区格式化,也就是说在你w之前的所有操作都是视为无效的哦!!!

所以,有时候一念之间就是这样的啦!!!!!

11

分区创建好了以后就可以使用fdisk -l来查看系统中所有的分区信息了

12

fdisk能识别出来这么多分区,内核能识别吗?因为与硬件打交道的是内核啊 !!!!

如果内核识别不了的话说明是没有这个硬件设备的哦! 查看内核识别的分区信息:

1
#cat /proc/partitons

13

软件能识别,内核竟然不能识别啊?该怎么办呢?

任何程序修改硬件必须要通过内核,必须要同步给正在运行的内核,让内核识别才行啊!问题是该怎样同步呢?

注:RHEL5.0RHEL6.0同步的相关命令也是不一样的。

查看试验测试机版本相关信息:

1
2
3
4
#cat /etc/issue
#lsb_release -a
#cat /proc/version
#uname -a

13-1

RHEL5让 内核重新读取硬盘分区表:

partprobe [Device]——重新探测

可指派探测某个指定的设备,不指定的话默认是探测所有的

14

读取失败,重启之前是无效的。

没有被读取到

RHEl6使用另外一个命令

RHEL6让内核重新读取硬盘分区表:

1
2
3
4
5
6
partx -a [partition] device
#man partx
-a add specified partitions or read disk and add all
partitions.读取所有的
-l list partitions. Note that the all numbers arein
512-byte sectors.

1
#cat /proc/partitions 查看内核识别分区表情况

---只有此命令显示的有各个分区信息,内核才会分区格式化,否则都是无效分区哦!千万记得哦!!!

18

手动一个一个添加似乎能被加上,但是仍然会报错!不知道是不是内核方面的问题。

OK,内核都识别了! 19

OK,分区都已经创建好了,那么,如何实现,往分区里面存放文件,如何使用这个分区呢?接下来我们还需要进行哪些操作呢?

格式化分区,用于创建文件系统没有文件系统就没有办法在里面创建文件呢!为什么呢?因为它是裸设备啊!呵呵1Linux创建分区命令: 两步实现:指定分区类型、指定分区对象

注:扩展分区是不能格式化的,一定记得哦!

/dev/sda3格式化分区类型为ext4

20

显示/dev/sda3分区的相关属性信息

21

UUID———表示全局唯一号,是一列随机字符串将来硬盘数量很多的情况下,可以使用来进行管理硬盘分区,所以每一个分区都给创建了一个全局唯一标识符

blkid:显示设备的以及文件系统类型

注:扩展分区不能格式化

1
2
3
4
5
6
#mkfs -t ext4 /dev/sda3=mke2fa -t ext4 /dev/sda3
#mkfs -t ext3=mkfs.ext3=mk2efs -j=mke2fs -t ext3
#mkfs -t ext4=mkfs.ext4
#mkfs -t ext2=mkfs.ext2=mke2fs
#mke2fs -t {ext2|ext3|ext4}
#blid /dev/sda3 blkid device显示设备的UUID及文件系统类型。

Uuid用来标识全局唯一ID号,是一连串随机数字,一台超级计算机上有成千上万个挂载分区,怎样去识别这上万个分区呢?使用sdasdb很可能会冲突的。

所以每一个分区都创建了一个全局唯一随机标识。重复的可能性极小,类似哈雷彗星撞地球,呵呵。硬盘无论放到哪个主机上,重复的可能性几乎不存在。 #man mkfs

-t fstype

#mke2fs -t ext4 /dev/sda3

mke2fs - create an ext2/ext3/ext4 filesystem

mke2fs -b {1024字节、2048字节、4096字节默认} 22 配置文件:vim /etc/mke2fs.conf用于设定默认特性及各文件系统的特有默认特性

1
#mke2fs -t ext4 -b2048 /dev/sda3

—————b指定块大小,默认为1kb,2kb.3kb块大小指的是什么呢?块大小取决于CPU对内存叶大小的支持,一般来说,X86默认页框是4K;默认是4096

查看磁盘分区相关属性信息

1
2
3
#tune2fs - l devcie |grep “Block size”
#tune2fs -l /dev/sda3 Block size:4096
# tune2fs -l /dev/sda3 | grep"Block size"

23

注:a)一个block只能属于一个文件

b)块太大的话会导致磁盘空间的浪费

c)块大小的划分取决于将来要存储的文件

d)要更改块大小只能格式化磁盘分区

-L——new-volume-label设定卷标

Set the volume label for the filesystem to new-vol-

ume-label. The maximum length of the volume label

is 16 bytes.

1
2
#mke2fs -t ext3 -b1024 -L mytest1/dev/sda3
注:块越小格式化的时间越长

要显示块大小

1
#Tune2fs -l device | grep “Block size”

24

-L指定卷标,设定卷标 使用卷标或者使用UUID是我们避免交叉引用的好方法之一!

卷标有可能也会重复,干脆使用UUID吧!

1
#mke2fs -b1024 -L mytest1 /dev/sda3

注:块越小所格式化的时间就越长!

25

1
#blkid /dev/sda3 还可以显示LABEL信息

26

一块硬盘被填满了的话会发生什么情况?# tune2fs -l /dev/sda3 | grep "Reserved" 查看磁盘默认预留空间 27

1
# echo $[577085/11541700]

[root@localhost ~]# bc

577085/ 11541700

0

scale=2设定精度

577085/ 11541700*/

.05=5%保留的是整个磁盘空间的5%200G预留了5%就是10G[ -m reserved-blocks-percentage ]预留给管理使用的块所占据总体块的比例。

1
2
# mke2fs -t ext4 -b2048 -m3 -L mytest1 /dev/sda3
# tune2fs -l /dev/sda3 |grep"Reserverd"

28

29

30

随着块大小的改变,预留空间较之前有较大的变化。mke2fs和tune2fs区别相当于useraddusermod,慢慢体会下是不是这样的?修改分区相关属性 重新设定卷标:-L

1
2
3
#blkid /dev/sda3
#tune2fs -L test2 /dev/sda3
#blkid /dev/sda3

31

调整块大小:-m

1
2
#tune2fs -m5 /dev/sda3
#tune2fs -l /dev/sda3 |grep “Reserved”

32

1
2
#tune2fs -m1 /dev/sda3
#tune2fs -l /dev/sda3 |grep “Reserved”

33

1
2
3
4
5
-o:设定默认挂载选项
-O:设定文件系统默认特性
-r调整预留给管理使用的块个数
-E设定文件系统的扩展属性
-l显示文件系统超级块信息

e2label显示设定卷标

1
2
3
#e2label /dev/sda3
#e2label /dev/sda3 test3
#e2label /devsda3

下篇

挂载概念:挂载其实就是关联关系的过程。fileSystem:一个软件,在内核中实现的

格式:mount -t filesystem options device mount-point

mount选项:

1
2
3
4
5
6
7
8
9
10
1)-o:用于指定挂载选项
2)ro:只读挂载
3)-n挂载文件系统时不更新/etc/mtab文件
4)rw:读写,默认即为读写
5)noatime:关闭更新访问时间的功能
6)auto:是否能由“mout -a”挂载
7)-r相当于”-o ro”只读挂载
8)defaults:相当于rw,suid,dev,exec,nouser,auto,async,and realatime
9)sync同步写入,性能差,CPU到内存10NS,CPU到硬盘100NS
10)async异步写入,大部分使用的是异步,性能好

sync在内存中完成保存,文件被编辑先被读入内存,文件编辑都是在内存中操作的。

mount [-t filetype]系统会调用blkid自动识别文件类型,此项可省略 挂载设备 挂载点

1)新建空白目录

1
2
3
4
5
6
#mkdir /test_m1
#cp /etc/inittab /test_m1
#cp /etc/fstab /test_m1
#cp /etc/rc.d/rc.sysinit /test_m1
#cp /etc/rc.d/init.d/functions /test_m1
#ls /test_m1

2)挂载,建立关联关系

1
2
# mount -t ext4 /dev/sda3 /test_m1/
# ls /test_m1/

原来的文件不见了,思考下为什呢?

3)反挂载,也就是卸载了

卸载的时候只需要指定一项目即可,要么是挂载点、要么是分区名称

4)使用卷标挂载

1
2
# e2label /dev/sda3
# mount LABEL="test2" /test_m1/



6使用卷标卸载umount /test_m1/

LABEL=卷标 7)使用UUID挂载

UUID=

1
2
# blkid /dev/sda3
# mount UUID="a54233f0-51c0-4f30-9a0f-eea4c0999f49" /test_m1/

1
#mount ——————>显示当前系统挂载的所有设备

/etc/fstab——————〉系统开机会自动挂载的文件系统

注:fdisk - l RHEL5上面不显示逻辑卷

fdisk - l RHEL 6上面是显示所有的磁盘分区的

fdisk -l /dev/[hs]d[a-z]

1
2
mount://将某文件系统关联至根文件系统上来
mount://显示所有挂在的设备

1
2
# cat /etc/mtab追踪当前系统上所有已挂载文件系统的文件,随时会更新。
# umount /dev/sda3

1
# cat /etc/mtab
1
2
#//fuser用于显示正在访问某个文件的进程
# fuser /media/ -km强制终止正在访问此挂载点的进程,谨慎使用哦!

定义内核中的磁盘清写策略,由内核自己维护。

1
2
3
4
5
6
7
8
9
10
#remount:重新挂载
#mount
#mount -o remount,ro /dev/sda3只要此前挂在过就无需重新指定挂载点
loop:本地回环设备,其实不是个设备,是个文件
mount -o remount,other_options device
mount -o loop,other_options device mount point用于挂载回环设备
-n:挂载文件系统时不更新cat /etc/mtab文件
-r:相当于“-o,ro”只读挂载
fuser [mount_point]//查看正在访问挂载点的进程
fuser -km[mount_point]//强行杀死正在访问此挂载点的进程

1
#/etc/fstab//使用空白字符分割的六个字段

1
2
3
4
5
6
7
8
9
10
11
1)挂载的设备:
设备文件、卷标、UUID(服务器上存储设备较多时可使用)
2)挂载点(一定要是空目录)
3)文件系统类型:ext2、ext3、ext4。。。。。
4)挂载选项:defaults表示使用默认选项,多个选项之间逗号分隔;
转储频率:也备份频率(就是多长时间做一次备份)
0:从不备份,默认此选项即可
1:每日备份
2、每隔一天备份
5)自检次序-做文件系统检测(文件系统不一致的情况下)
6)定义自检次序:

ext3日志文件系统

0:不检测

1、:第一个检测:一般只有根文件系统被第一个检测,一般来讲只能是根为1

1
2
3
4
2-9逐个检测
#vim +//直接打开文件并定位至最后一行
#vim + /etc/fstab
#按小写字母o,在当前光标所在行下行新建一行并转换为输入模式

1
2
a)上面的操作只能保证下次开机启动时自动挂载哦!
b)下面的操作是立即挂载到当前相关联的目录上,是随时都可以使用的啦!

1
#mount -a//挂载/etc/fstab所有支持auto挂载选择的文件系统

Linux的交换分区:SWAP

1)创建交换分区

1
2
3
mkfs -t [fstype] partition
1、文件系统必须被内核支持才能使用,即内核中有相应的内核模块或者已经编译进内核;
2、要有相应的文件系统创建工具,mkfs.fstype,于内核模块一一对应


启用交换分区

1
2
3
#mkswap device//启用交换分区
#swapon device //启用指定交换分区
#swapoff -a //启用所有交换分区

禁用交换分区

1
2
3
#swapoff device
#swapopp -a
#开机启动交换分区,可写入到/etc/fstab

挂载时注意以下两点即可

1
2
1)挂载点填写swap
2)文件系统类型填写swap

将分区信息写入内核

建立交换分区 设置开机自动挂载

完!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d
ASP.NET Core应用程序发布linux在shell中运行是正常的。可一但shell关闭网站也就关闭了,所以要配置守护进程, 用的是Supervisor,本文主要记录配置的过程和过程遇到的问题 安装Supervisor 1 yum install python-setuptools
设置时区(CentOS 7) 先执行命令timedatectl status|grep 'Time zone'查看当前时区,如果不是时区(Asia/Shanghai),则需要先设置为中国时区,否则时区不同会存在时差。 #已经是Asia/Shanghai,则无需设置 [root@xia
vim /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO="static" ONBOOT=yes IPADDR=192.168.8.106 NETMASK=255.255.252.0 GATEWAY=192.168.
一、安装gcc依赖 由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装 [root@localhost local]# yum install -y gcc 二、下载并解压安装包 [root@localhost local
第一步 On CentOS/RHEL 6.*: $ sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el6/x86_64/nux-dextop-release-0-2.el6.nux.noarch.rpm On CentOS/RHEL 7: $
/// <summary> /// 取小写文件名后缀 /// </summary> /// <param name="name">文件名</param> /// <returns>返回小写后缀,不带“.”</ret
which nohup .bash_profile中并source加载 如果没有就安装吧 yum provides */nohup nohup npm run start & nohup ./kibana &
1.1 MySQL安装 1.1.1 下载wget命令 yum -y install wget 1.1.2 在线下载mysql安装包 wget https://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 1.1.3 安装My
重启 reboot shutdown -r now init 6 关闭 init 0 shutdown -h now shutdown -h 20:25 #8点25关机查看内存 free CPU利用率 top 日期 date 设置时间 date 033017002015 #月日时间年 日历 cal
1、firewalld的基本使用 启动: systemctl start firewalld 关闭: systemctl stop firewalld 查看状态: systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 :
1 下载并安装MySQL官方的 Yum Repository wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm 使用上面的命令就直接下载了安装用的Yum Repository,大概
CentOS6.x CentOS6中转用Upstrat代替以前的init.d/rcX.d的线性启动方式。 一、相关命令 通过initctl help可以查看相关命令 [root@localhost ~]# initctl help Job commands: start Start job. sto
1、使用命令:df -lk 找到已满磁盘 2、使用命令:du --max-depth=1 -h 查找大文件,删除
ifconfig:查看网卡信息 网卡配置文件位置: /etc/sysconfig/network-scripts/文件夹 nmtui:配置网卡 netstat -tlunp:查看端口信息 端口信息存储位置: /etc/services文件 route:查看路由信息 wget:下载网路文件,例如 wg
ps -ef:查看所有进程, ps -ef |grap firewalld 查看与firewalld相关的进程 which :查看进程:which firewalld kill 进程id:杀掉进程 kill 640,强制杀:kill -9 640 man:查看帮助,例如 man ps 查看
useradd:添加用户 useradd abc,默认添加一个abc组 vipw:查看系统中用户 groupadd:添加组groupadd ccna vigr:查看系统中的组 gpasswd:将用户abc添加到ccna组 gpasswd -a abc ccna groups abc:查看用户abc属