1、磁盘分区工具与挂载

1.1 硬盘分区符认识:

MBR概述:全称为Master Boot Record,即硬盘的主引导记录。

硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由3个本分组成:主引导程序、硬盘分区表DPT(Disk Partition Table)和分区有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记录在其中。第三部分是magic number,占两个自己,固定为55AA。

分区编号:

  • 主分区:1-4
  • 逻辑分区:从5开始

一个硬盘最多能有4个主分区一个扩展分区,一般组成为:4个主分区或者3个主分区和一个扩展分区。

linux规定,逻辑分区必须建立在扩展分区之上,不能在主分区之上

分区作用:

  • 主分区:主要是用来启动操作系统,它主要存放的是操作系统的启动或引导程序,/boot分区最好放在主分区上
  • 扩展分区:扩展分区不能直接使用,它只是作为逻辑分区的容器存在。我们真正存放数据的是主分区和逻辑分区,一般大量的数据都放在逻辑分区

GPT的分区方式,不限制主分区个数

注意:使用分区工具fdisk对磁盘进行操作,分区,格式化

[root@linuxprobe yg]# ls /dev/sd*
/dev/sda /dev/sda1 /dev/sda2 /dev/sdb /dev/sdc /dev/sdd

说明:

/dev/sda1

  • /dev:设备文件的目录
  • sd:scsi硬盘
  • a:【a-z】从a开始,sda表示第一块scsi硬盘,第二块为sdb,依次类推
  • 1:分区编号,表示第一块scsi硬盘上的第一个分区。

1.2 使用fdisk管理分区

fdisk:磁盘分区,是linux发行版本中最常用的分区工具

用法:fdisk 【选项】 device

常用选项: -l 查看硬盘分区表

[root@linuxprobe yg]# fdisk -l

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000033f0 设备 Boot Start End Blocks Id System
/dev/sda1 *2048 2099199 1048576 83 Linux
/dev/sda2 20992008388607940893440 8e Linux LVM 磁盘 /dev/sdb:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sdc:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节 磁盘 /dev/sdd:8589 MB, 8589934592 字节,16777216 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

fdisk常用的参数:

 [root@linuxprobe yg]# fdisk /dev/sdd
欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。 Device does not contain a recognized partition table
使用磁盘标识符 0x4cf6a6ac 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):m
命令操作
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ##删除分区
g create a new empty GPT partition table
G create an IRIX (SGI) partition table
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
t change a partition's system id ##改变分区类型
u change display/entry units
v verify the partition table
w write table to disk and exit ##写分区信息到硬盘,保存操作并退出
x extra functionality (experts only)

1.3 使用fdisk添加一个新的分区

1)在/dev/sda硬盘上新建一个分区

fdisk /dev/sda

命令(输入 m 获取帮助):p   ##列出当前磁盘的分区信息

磁盘 /dev/sda:42.9 GB, 42949672960 字节,83886080 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000033f0 设备 Boot Start End Blocks Id System
/dev/sda1 *2048 2099199 1048576 83 Linux
/dev/sda2 20992008388607940893440 8e Linux LVM 命令(输入 m 获取帮助):n ##新建一个分区 Partition type:
p primary (2 primary, 0 extended, 2 free)p:主分区
e extended e:扩展分区
Select (default p): --直接默认
Using default response p
Partition number (1,4, default 3): ---直接默认
First sector (1230848-41943039, default 1230848): ---直接默认
Using default value 1230848
Last sector, +sectors or +size{K,M,G} (1230848-41943039, default 41943039): +1G 输入分区大小
Partition 3 of type Linux and of size 1 GiB is set
Command (m for help): w 保存退出

2)让新划分的分区生效

注意:对已经在使用的磁盘进行分区后,要让新分区生效,可以使用:

partx -a /dev/sda

最好的办法是进行设备重启。

init 6

3)格式化新分区

mkfs.xfs -f /dev/sda3  #格式化,-f 对已经存在文件系统的分区,强制格式化

4)挂载新分区

mkdir /data ##创建挂载点/data
mount /dev/sda3 /data ##将新分区/dev/sda3挂载在/data目录下
df -h #查看确认新的分区已经存在

5)写入配置文件/etc/fstab,让其开机自动挂载

vim /etc/fstab

在最后写入

/dev/sda3 /data xfs defaults 0 0

注释:

/dev/sda3 /data xfs defaults 0 0
要挂载的分区 挂载点 文件系统类型 挂载选项 是否备份 是否检测
mount -a  ##自动挂载/etc/fstab文件中没有挂载的文件

df -h ##进行查看分区信息,如果能查看到新挂载的分区,说明fstab配置文件中书写正确,负责需要核对。

6)卸载一个分区

正在使用的分区使用umount时是卸载不了的

umount /dev/sda3
umount: /:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以
找到有关使用该设备的进程的有用信息)

两种方式:

a:查看正在使用当前分区的进程,杀死进程

lsof /data
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 2823 root cwdDIR 8,17 20 64 /sda3
lsof 2952 root cwdDIR 8,17 20 64 /sda3
lsof 2953 root cwdDIR 8,17 20 64 /sda3 kill -9 2823

b、退出目录,重新卸载

umount /dev/sda3

注:umount 挂载点 //卸载方式1 或 umount 设备路径 //卸载方式2

7)扩展

a、使用UUID挂载

建议使用UUID挂载,以防止因为磁盘接口更换以后引起的挂载混乱问题

查找分区UUID

[root@linuxprobe yg]# blkid
/dev/sda1: UUID="677c979d-c6ef-4995-9457-b9b171474ace" TYPE="xfs"
/dev/sda2: UUID="JuGBSR-C2u5-17Cl-9kYL-WQeZ-HxZo-GLlAd7" TYPE="LVM2_member"
/dev/sdb: UUID="2NeLtq-9iww-Vg1C-Zf3q-A0GW-6ADt-u7rxvb" TYPE="LVM2_member"
/dev/sdc: UUID="cU00n2-gBCQ-ndDa-Q9k7-vMWF-oQtz-dVYA3e" TYPE="LVM2_member"
/dev/sr0: UUID="2018-11-25-23-54-16-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos"
/dev/sdd: UUID="OAsDBm-SXex-DSMy-M1vE-RPMv-DHfc-fKuY0B" TYPE="LVM2_member"
/dev/mapper/centos-root: UUID="5b16f9e2-ff2e-41ff-aaf6-4c9f4d3b4a1a" TYPE="xfs"
/dev/mapper/centos-swap: UUID="0b59d0a5-429d-46e8-a69e-0fb43531e440" TYPE="swap"

根据分区UUID挂载,以sda2为例

echo "JuGBSR-C2u5-17Cl-9kYL-WQeZ-HxZo-GLlAd7  /sdb1  xfs defaults 0 0" >> /etc/fstab

b、扩展对fstab配置文件了解

/dev/sda3 /data xfs defaults 0 0
要挂载的分区 挂载点 文件系统类型 挂载选项 是否备份 是否检测

第四列:parameters-文件系统的参数

参数 说明
Async/sync 设置是否为同步方式运行,默认为async
auto/noauto 当执行mount -a 的命令时,此文件系统是否被主动挂载。默认为auto
rw/ro 是否以以只读或者读写模式挂载
exec/noexe 限制此文件系统内是否能够进行"执行"的操作
user/nouser 是否允许用户使用mount命令挂载
suid/nosuid 是否允许SUID的存在
Usrquota 启动文件系统支持磁盘配额模式
Grpquota 启动文件系统对群组磁盘配额模式的支持
Defaults 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 samba nfs

第五列:是否进行备份。通常这个参数的值为0或者1

参数 数值
0 代表不要做备份
1 代表每天都要做备份
2 代表不定日期的进行备份

第六列:是否检验扇区:开机的过程中,系统默认会以fsck检验我们系统是否为完整

参数 数值
0 不要检验
1 最早检验(一般根目录会选择)
2 1级别检验完成之后进行检验

1.4 gdisk磁盘分区工具

gdisk主要是用来划分容量大于4T的硬盘。

两种类型的分区表:GPT和MBR ; MBR不支持4T以上

GPT分区:GPT,全局唯一标识分区表(GUID Partition Table),它使用128位GUID来唯一标识每个磁盘和分区,与MBR存在单一故障点不同,GPT提供分区表信息的冗余,一个在磁盘头部一个在磁盘尾部;它通过CRC校验和来检测GPT头和分区表中的错误与损坏;默认一个硬盘支持128个分区

直接引用学神的文档:

例:对sdb做gpt分区,创建一个sdb1

[root@xuegod63 ~]# gdisk /dev/sdb
。。。
Command (? for help): ?# 查看帮助
b back up GPT data to a file
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)
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-41943006, default = 2048) or {+-}size{KMGTP}: #直接回车, 从头开始划分空间
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +1G #给1G空间
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): #分区类型直接回车
注:8300 Linux filesystem ;8e00 Linux LVM 想查看,可以按L 来显示
Changed type of partition to 'Linux filesystem' Command (? for help): p #查看
。。。
Number Start (sector)End (sector) Size Code Name
12048 2099199 1024.0 MiB 8300 Linux filesystem
Command (? for help): w #保存
Do you want to proceed? (Y/N): y#确定写入
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully. [root@xuegod63 ~]# mkfs.xfs /dev/sdb1 #格式化


END

2019-5-7 0:44:05

#学习笔记:CentOS7学习之十三(2):磁盘介绍与管理的更多相关文章

  1. #学习笔记#e2e学习使用(一)

    本文仅限于记录本人学习的过程,以及怎么踩的坑,是如何解决的.逻辑肯定是混乱的,有用之处会抽出共通另行发帖. 最终目标:要运用于Vue项目中,进行功能测试甚至自动化测试. 一.e2e概念 理解:end ...

  2. java JDK8 学习笔记——助教学习博客汇总

    java JDK8 学习笔记——助教学习博客汇总 1-6章 (by肖昱) Java学习笔记第一章——Java平台概论 Java学习笔记第二章——从JDK到IDEJava学习笔记第三章——基础语法Jav ...

  3. python3.4学习笔记(七) 学习网站博客推荐

    python3.4学习笔记(七) 学习网站博客推荐 深入 Python 3http://sebug.net/paper/books/dive-into-python3/<深入 Python 3& ...

  4. 20155234 2016-2017-2第十周《Java学习笔记》学习总结

    20155234第十周<Java学习笔记>学习总结 教材学习内容总结 网络编程 在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定 ...

  5. 20155234 2610-2017-2第九周《Java学习笔记》学习总结

    20155234第九周<Java学习笔记>学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC(Ja ...

  6. #学习笔记#e2e学习使用(二)

    前言: <#学习笔记#e2e学习使用(一)>主要记录了Vue项目的创建到e2e环境的搭建,以及期间遇到的各种问题和解决方法.本文建立在基础测试环境搭建完毕能正确运行的情况下,编写测试代码, ...

  7. mybatis学习笔记之学习目录(1)

    mybatis学习笔记之学习结构(1) 学习结构: 1.mybatis开发方法 原始dao开发方法(程序需要编写dao接口和dao实现类) mybatis的mapper接口(相当于dao接口)代理开发 ...

  8. Vue学习笔记-rest_framework_jwt 学习

    一  使用环境 开发系统: windows 后端IDE: PyCharm 前端IDE: VSCode 数据库: msyql,navicat 编程语言: python3.7  (Windows x86- ...

  9. ActionBarSherlock的学习笔记(一) -------------- ActionBarSherlock的简要介绍

    1. 介绍 ActionBarSherlock 是Android compatibility library 的一个扩展, 不知道什么原因 Android 兼容开发包没有包含ActionBar. 所以 ...

  10. Asp.net MVC4高级编程学习笔记-视图学习第一课20171009

    首先解释下:本文只是对Asp.net MVC4高级编程这本书学习记录的学习笔记,书本内容感觉挺简单的,但学习容易忘记,因此在边看的同时边作下了笔记,可能其它朋友看的话没有情境和逻辑顺序还请谅解! 一. ...

随机推荐

  1. Codeforces Round #346 (Div. 2) B题

    B. Qualifying Contest Very soon Berland will hold a School Team Programming Olympiad. From each of t ...

  2. BZOJ 4152: [AMPPZ2014]The Captain Dijkstra+贪心

    Code: #include <queue> #include <cstdio> #include <cstring> #include <algorithm ...

  3. [NLP] cs224n-2019 Assignment 1 Exploring Word Vectors

      CS224N Assignment 1: Exploring Word Vectors (25 Points)¶ Welcome to CS224n! Before you start, make ...

  4. JAVA NIO缓冲区(Buffer)------ByteBuffer常用方法

    参考:https://blog.csdn.net/xialong_927/article/details/81044759 缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对输入/输出(I ...

  5. ubuntu nvidia驱动安装教程

    1. 安装显卡切换软件 sudo add-apt-repository ppa:nilarimogard/webupd8 #添加PPA更新源   sudo apt-get update #刷新更新源列 ...

  6. python桶排序代码

    代码基于3.8 def bucketSort(nums): #选择一个最大的数 max_num = max(nums) # 创建一个元素全是0的列表, 当做桶 bucket = [0]*(max_nu ...

  7. nginx 实现高并发和高负载

    一.Nginx是如何实现高并发的 service nginx start之后,然后输入#ps -ef|grep nginx,会发现Nginx有一个master进程和若干个worker进程,这些work ...

  8. macos npm + node 环境启动问题排查

    MacOS安装npm全局包的权限问题 解决办法:修改npm包所安装目录的权限:sudo chown -R $USER /usr/local   然后输入密码就可以了 deMBP:~ $ sudo ch ...

  9. useMemo、useCallback简单理解

    1.useMemo.useCallback都是使参数(函数)不会因为其他不想关的参数变化而重新渲染. (1)useMemo const memoDom = useMemo(() => { ret ...

  10. Java中AWT、Swing与SWT三大GUI技术的原理与效率差异

    Java中AWT.Swing与SWT三大GUI技术的原理与效率差异 转 https://blog.csdn.net/weixin_37703598/article/details/81843810   ...