linux 磁盘管理论文,Linux磁盘分区管理笔记

磁盘管理(disk manage) - 01-15-AM

存储管理(storage manage)

新硬盘的管理流程:分区fdisk或parted--〉格式化mkfs--〉挂载mount

思考:将分区、格式概念和一套3室一厅的房子联系起来。或者将分区、格式概念和一个衣柜联系起来。也可以将分区、格式概念和小学生的方格写字本联系起来。

f958383e183a7bb942127f136ffe2e89.png

分区的作用:将硬盘上的数据进行分类管理,如c盘存操作系统,d盘存安装软件,e盘存电影和音乐。

格式化:是一个创建文件系统的过程,将分区中的容量按逻辑上分成inode表、数据块等信息。

挂载:将一个分区的文件系统加载(读)到一个目录中。即目录是访问分区文件系统的入口,访问这个挂载点目录就等同于访问这个分区文件系统中的文件。

硬盘分区(disk partition):

GPT分区管理:parted命令

GPT:是GUID(Globally Unique Identifier) Partition Table全局唯一标识分区表的缩写。GPT分区表中只有主分区这个管理概念。允许创建128个主分区。GPT分区表可以用来管理总容量大于2TB以上的硬盘。硬盘的UUID号可用blkid命令来查。

GUID:全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。GUID标识符由随机产生的字母、数字混合组成。

练习准备:将linux虚拟机关机,给虚拟机添加5块SCSI接口的2GB的硬盘,创建快照“5块2G硬盘”,然后将虚拟机开机,执行lsblk命令显示磁盘块设备列表。

要求:将2GB的硬盘sdb用GPT分区表进行管理,要求给sdb硬盘创建2个主分区,第1个主分区容量是1.5G,另一个主分区的容量使用所有剩余空间。

查块设备列表(list block):lsblk

定义分区表标签(即格式):parted -s /dev/sdb mklabel gpt

创建第1个1.5G的主分区:parted -s /dev/sdb mkpart primary 1M 1.5G

创建第2个主分区(使用所有剩余空间-1):parted -s /dev/sdb mkpart primary '1.5G -1'

查看sdb硬盘的分区表信息:lsblk 或 fdisk -l /dev/sdb

parted命令的附加功能:

显示(print)sdb硬盘的分区表:parted /dev/sdb p

删除(remove)sdb硬盘的2号分区:parted -s /dev/sdb rm 2

mount挂载:将分区的文件系统内容读取到一个目录中。访问这个挂载点目录就等同于访问这个分区文件系统中的文件。其实windows中的c、d等盘符就是自动挂载的目录。例如,在windows中插入U盘后会被自动分配到一个盘符,这就是微软在后台做的一个mount自动挂载的程序。

要求:将sdb硬盘的第1个分区格式化成ext4文件系统,将第2个分区格式化成xfs文件系统。将第1个分挂载到/mnt/sdb1目录中,将第2个分挂载到/mnt/sdb2目录中。分别往分区的挂载点目录中写入一些数据。

查分区:lsblk

格式化1号分区:mkfs.ext4 /dev/sdb1 或 mkfs -t ext4 /dev/sdb1

格式化2号分区:mkfs.xfs /dev/sdb2 或 mkfs -t xfs /dev/sdb1

创建挂载点目录:mkdir -pv /mnt/sdb{1,2} 或 mkdir -pv /mnt/sdb1 /mnt/sdb2

手动挂载:mount /dev/sdb1 /mnt/sdb1 ; mount /dev/sdb2 /mnt/sdb2

查挂载信息:lsblk 或 df -hT 或 mount

写入数据:touch /mnt/sdb1/{a.txt,b.mp3} ; cp -v /etc/host* /mnt/sdb2

递归(-R)显示/mnt目录中的文件名列表:ls -R /mnt

课堂练习:参考sdb硬盘的操作,将sdc、sdd硬盘也做同样的分区、格式化、手动挂载、写入文件操作。

磁盘分区的参考脚本(入门级):

入门级脚本:即没有if条件、for循环这些控制语句的脚本,通常是一次性的脚本。

cat pt.sh 脚本内容如下

#!/bin/bash

#脚本中以#号开头的内容为注释,仅起到说明作用。上面的#!/bin/bash脚本的解释器程序名,通常是/bin/bash或/bin/sh或/bin/python。

#以下的a、x是变量,$a、$x是调用变量a、x的取值。

a=/dev/sdc

x=/mnt/sdc

lsblk

parted -s $a mklabel gpt

parted -s $a mkpart primary 1M 1.5G

parted -s $a mkpart primary '1.5G -1'

lsblk

mkfs.ext4 ${a}1

mkfs.xfs ${a}2

mkdir -pv ${x}1 ${x}2

mount ${a}1 ${x}1

mount ${a}2 ${x}2

touch ${x}1/{a.txt,b.mp3}

cp -v /etc/host* ${x}2/

ls ${x}1 ${x}2

lsblk

给脚本添加可执行权限:chmod +x pt.sh

运行脚本:./pt.sh 或 bash pt.sh 或 sh pt.sh 或 python pt.py

到此,GPT分区的管理介绍完毕,其中内容包括分区的查询lsblk、创建parted、格式化mkfs、挂载mount。

MBR分区表管理:

MBR:是主引导记录(main boot record)的缩写。

MBR:是保存在硬盘的0磁道0柱面1扇区的位置,占用512字节(因为1个扇区默认的大小是512字节)。其中bootloader引导程序占用446字节,DPT(disk partition table)分区表占用64字节,magic占用2字节。

MBR的分区表特点:

0.只能管理总容量在2TB以内的硬盘。

1.最多只允许分4个主分区,因为DPT分区表总容量是64字节,每个分区占用16字节,即64/16=4。

2.如果想分的个以上的分区,可采用分一个主分区(primary)和一个扩展分区(extend),然后在扩展分区中创建逻辑(logical)分区来实现。

3.主分区的编号为1~4,第1个逻辑分区的编号默认为5。

4.只能在主分区和逻辑分区上格式化创建文件系统。并且只能在主分区和逻辑分区上写入文件。

9c76e7fc5aca9b68f3ec113efc2b0c45.png

5e4d28f7912858d6bc50eb59eb37a730.png

硬盘分5个分区的方案(用MBR分区表):

方案一、1个主分区,1个扩展分区,4个逻辑分区。

方案二、3个主分区,1个扩展分区,2个逻辑分区。

练习准备:将sdb硬盘的两个分区的文件系统依次卸载掉,并删除sdb硬盘的所有分区。

查分区表信息:lsblk

卸载分区的文件系统:umount /mnt/sdb1 /mnt/sdb2

删除分区表(修改分区表格式标签即可):parted -s /dev/sdb mklabel msdos

查分区表信息:lsblk

MBR分区练习:将2GB的硬盘sdb用MBR分区表进行管理,要求给sdb硬盘创建1个容量为1.2G的主分区,再创建一个扩展分区容量为所有剩余空间。在扩展分区中创建2个逻辑分区,第1个逻辑分区容量为600M,第2个逻辑分区的容量为所有剩余空间。

查分区表信息:lsblk

cfdisk管理分区:cfdisk /dev/sdb

cfdisk快捷键:n是new新建 p是primary主分区 l是logical逻辑分区

W(大写)是wite保存(写入) q是quit退出

创建主分区:n新建==>p主分区==>1.2G回车==>beginning回车==>W(大写)保存==>yes回车

创建逻辑分区1:选free空闲空间==> n新建==>l逻辑分区==>600M回车==>beginning回车

创建逻辑分区2:选free空闲空间==> n新建==>l逻辑分区==>600M回车==>beginning回车==>W保存==>yes回车==>q键退出

查分区表信息:lsblk

练习要求:将sdb硬盘的第1个分区格式化成ext4文件系统,将第1、2个逻辑分区格式化成xfs文件系统。将第1个分挂载到/mnt/data目录中,将第1、2个逻辑分区分别挂载到/mnt/mysql、/mnt/web目录中。分别往分区的挂载点目录中写入一些数据。

查分区表信息:lsblk

格式化分区:mkfs.ext4 /dev/sdb1

mkfs.xfs /dev/sdb5

mkfs.xfs /dev/sdb6

创建挂载点目录:mkdir -pv /mnt/{data,mysql,web}

手动挂载:mount /dev/sdb1 /mnt/data

mount /dev/sdb5 /mnt/mysql

mount /dev/sdb6 /mnt/web

写入数据:touch /mnt/data/{a1.txt,b1.mp3}

mkdir -pv /mnt/mysql/{haha,hehe}

cp -v /etc/host* /mnt/web/

递归显示文件名列表:ls -R /mnt/{data,mysql,web}

课堂练习:参考sdb硬盘的操作,将sdc、sdd硬盘分区的文件系统卸载掉,删除sdc、sdd硬盘的分区表,再做同样的分区、格式化、手动挂载、写入文件操作。

fstab自动挂载:

mount手动挂载的缺点:当系统重启后,用户必须重新手动将分区的文件系统挂载到指定的目录。但是用户可以将mount手动挂载的命令写到/etc/rc.d/rc.local开机运行脚本文件中,系统在启动时会自动执行rc.local脚本中的命令。

fstab自动挂载配置文件:fstab是file system table文件系统表的缩写。是用来记录磁盘分区设备自动挂载信息的配置文件。系统启动时会读取/etc/fstab文件中的挂载配置信息,并自动挂载里面的设备。

练习:查看/etc/fstab配置文件内容,熟悉fstab文件格式。(可用man 5 fstab了解文件的格式)

81ece58cf1cc7d8a490a398604cbcd9c.png

fstab文件格式说明:

第1列:分区设备,可以是磁盘的分区设备名、分区的UUID值、分区的label标签。UUID值、label标签可用blkid命令查。

第2列:挂载点目录,必须是已存在的空目录。

第3列:文件系统类型,也就是用mkfs、mkfs.ext4、mkfs.xfs格式化创建的文件系统格式。文件系统格式可以是ext4、、xfs、vfat、ntfs、iso9660、nfs、smb等。

第4列:挂载选项,通常是defaults默认,default代表的选项是rw可读可写,suid超级权限,dev设备,exec可执行,auto自动,nouser无用户,and async异步。选项还可以是ro只读、usrquota用户配额、grpquota组配额。

第5列:dump备份,即是否使用dump工具进行数据备份。0表示禁用,1表示启动。

第6列:fsck检查,即是否使用fsck工具进行磁盘扫描检查。0表示禁用,1表示启动。

练习准备:要求将sdb硬盘的三个分区的文件系统卸载。并用lsblk或df -hT查看挂载信息。

查挂载信息:lsblk 或 df -hT

卸载分区的文件系统:umount -v /dev/sdb{1,5,6}

查挂载信息:lsblk 或 df -hT

fstab挂载练习:采用fstab文件实现sdb硬盘三个分区的文件系统自动挂载。

第1步,在fstab配置文件中添加自动挂载设置。

vim /etc/fstab 在文件最后添加如下内容

#分区设备 挂载点 文件系统类型 挂载选项 dump备份 fsck检查

/dev/sdb1 /mnt/data ext4 defaults 0 0

/dev/sdb5 /mnt/mysql xfs defaults 0 0

/dev/sdb6 /mnt/web xfs defaults 0 0

第2步,用mount -av做自动挂载测试。用lsblk或df -hT显示已挂载的分区文件系统信息。

mount -av

lsblk 或 df -hT

第3步,此步骤可以不做,仅用于验证效果。reboot重启linux系统,系统启动后,用lsblk或df -hT看sdb硬盘分区的文件系统是否自动挂载上了。

reboot 重启,并等待系统启动,再执行如下命令

lsblk 或 df -hT

mount命令详解:

用法:mount [选项] 分区设备 挂载点

选项:

-a, --all 挂载 fstab 中的所有文件系统

-h, --help 显示此帮助并退出

-o, --options 挂载选项列表,以英文逗号分隔,选项用man mount查帮助手册

-r, --read-only 以只读方式挂载文件系统(同 -o ro)

-t, --types 限制文件系统类型集合,文件系统格式类型通常有ext4、xfs、vfat、ntfs、smb、nfs、swap、iso9660等

--source 指明源(路径、标签、uuid)

--target 指明挂载点

-v, --verbose 打印当前进行的操作

-w, --rw, --read-write 以读写方式挂载文件系统(默认)

源(设备):

-L, --label 同 LABEL=

-U, --uuid 同 UUID=

LABEL= 按文件系统标签指定设备

UUID= 按文件系统 UUID 指定设备

PARTLABEL= 按分区标签指定设备

PARTUUID= 按分区 UUID 指定设备

按路径指定设备

绑定挂载的挂载点(参阅 --bind/rbind)

用于设置回环设备的常规文件

操作:

-B, --bind 挂载其他位置的子树(同 -o bind)

-M, --move 将子树移动到其他位置

-R, --rbind 挂载其他位置的子树及其包含的所有挂载

mount实例:执行如下功能的命令。

创建挂载点目录:mkdir -pv /tmp/{c..g}

显示磁盘块设备清单:lsblk

将/dev/sda1分区挂载到/tmp/c目录中:mount -t xfs /dev/sda1 /tmp/c

将/dev/sda1分区以只读方式挂载到/tmp/d目录中:mount -o ro /dev/sda1 /tmp/d

以uuid方式将/dev/sda1分区挂载到/tmp/e目录中:

blkid /dev/sda1;

mount UUID="8b947ec7-6d78-4121-8a4c-7aaabf3a221e" /tmp/e

给/dev/sda1分区设置label标签,以label标签的方式挂载sda1分区到/tmp/f目录中:

将/usr目录挂载到/tmp/g目录中(通常用于文件共享时):mount -B /usr /tmp/g

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值