[磁盘操作]
[磁盘操作]
基础篇 Linux 的⽬录结构
linux 的⽂件系统是采⽤级层式的树状⽬录结构,在此结构中的最上层是根⽬录“/”,然后在此⽬录下再创建其
他的⽬录。
记住⼀句经典的话:在 Linux 世界⾥,⼀切皆⽂件。
⽬录结构的具体介绍
/bin [重点] (/usr/bin、/usr/local/bin):是Binary的缩写,这个⽬录存放最经常使⽤的命令。
/sbin(/usr/sbin、/usr/localsbin):s就是Super User的意思,这⾥存放的是系统管理员的系统管理程序。
/home[重点]:存放普通⽤户的主⽬录,在Linux中每个⽤户都有⼀个⾃⼰的⽬录,⼀般该⽬录是以⽤户的账
号命令的。
/root[重点]:该⽬录为系统管理员,也称作超级管理员的主⽬录。
/boot[重点]:存放的是启动Linux时使⽤的⼀些核⼼⽂件,包括⼀些链接⽂件以及镜像⽂件。
/proc: 这个⽬录是⼀个虚拟⽬录,它是系统内存的映射,访问这个⽬录来获取系统信息。
/srv:service缩写,该⽬录存放⼀些服务启动之后需要提取的数据。
/tmp:这个⽬录⽤来存放⼀些临时⽂件。
/dev:类似于windows的设备管理器,把所有的硬件⽤⽂件的形式存储。
/media[重点]:linux系统会⾃动识别⼀些设备,⾃动识别⼀些设备,例如:U盘、光驱等。
/mnt[重点]:系统提供该⽬录是为了让⽤户临时挂载别的⽂件系统
/opt:这是给主机额外安装软件所摆放的⽬录。
/usr/local[重点]:这是另⼀个给主机额外安装软件所安装的⽬录。⼀般是通过编译源代码的⽅式安装程序。
/var[重点]:这个⽬录中存放着不断扩充的东⻄,习惯将经常被修改的⽬录放在这个⽬录下。

Linux ⽬录总结⼀下
-
linux 的⽬录中有且只要⼀个根⽬录 /
-
linux 的各个⽬录存放的内容是规划好,不⽤乱放⽂件。
-
linux 是以⽂件的形式管理我们的设备,因此 linux 系统,⼀切皆为⽂件。
-
linux 的各个⽂件⽬录下存放什么内容,⼤家必须有⼀个认识。
-
学习后,你脑海中应该有⼀颗 linux ⽬录树
Linux 磁盘分区、挂载****分区基础知识
mbr 分区:
最多⽀持四个主分区
系统只能安装在主分区
扩展分区要占⼀个主分区
MBR 最⼤只⽀持 2TB,但拥有最好的兼容性
gtp分区
⽀持⽆限多个主分区(但是操作系统可能显示,⽐如Windows最多⽀持128个分区)
最⼤⽀持18EB⼤容量
windows 下的磁盘分区

Linux 分区
原理介绍
- Linux 来说⽆论有⼏个分区,分给哪⼀⽬录使⽤,它归根结底就只有⼀个根⽬录,⼀个独⽴且唯⼀的⽂件结构 ,
Linux 中每个分区都是⽤来组成整个⽂件系统的⼀部分。
- Linux 采⽤了⼀种叫“载⼊”的处理⽅法,它的整个⽂件系统中包含了⼀整套的⽂件和⽬录, 且将⼀个分区和⼀个
⽬录联系起来。这时要载⼊的⼀个分区将使它的存储空间在⼀个⽬录下获得。
3)示意图

硬盘说明
- Linux 硬盘分 IDE 硬盘和 SCSI 硬盘,⽬前基本上是 SCSI 硬盘
2)对于 IDE 硬盘,驱动器标识符为“hdx~”,其中“hd”表明分区所在设备的类型,这⾥是指 IDE 硬盘了。“x”为盘号(a
为基本盘,b 为基本从属盘,c 为辅助主盘,d 为辅助从属盘),“~”代表分区,前四个分区⽤数字 1 到 4 表示,它们
是主分区或扩展分区,从 5 开始就是逻辑分区。例,hda3 表示为第⼀个 IDE 硬盘上的第三个主分区或扩展分
区,hdb2 表示为第⼆个 IDE 硬盘上的第⼆个主分区或扩展分区。
3)对于 SCSI 硬盘则标识为“sdx~”,SCSI 硬盘是⽤“sd”来表示分区所在设备的类型的,其余则和 IDE 硬盘的表示⽅
法⼀样。

MBR分区
MBR分区
1.最多⽀持四个主分区
2.系统只能安装在主分区
3.扩展分区要占⼀个主分区
4.MBR 最⼤只⽀持 2TB,但拥有最好的兼容性
fdisk工具:
适⽤于磁盘⼩于2TB的磁盘,分区类型MBR,主分区4或主分区3+扩展分区(逻辑分区+…),分区后需要保存后才能⽣效
lsblk /dev/磁盘名 # 查看指定磁盘设备详情
fdisk /dev/磁盘名 # 进入操作当前磁盘(输入m查看所有命令)
a toggle a bootable flag #切换分区启动标记
b edit bsd disklabel #编辑sdb磁盘标签
c toggle the dos compatibility flag #切换dos兼容模式
d delete a partition #删除分区 保存退出要执⾏partprobe刷新分区表
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) #拓展功能
优先掌握
fdisk创建分区
w write table to disk and exit #保存退出
x extra functionality (experts only) #拓展功能
fdisk创建分区
fdisk /dev/sdb
欢迎使⽤ fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写⼊磁盘。
使⽤写⼊命令前请三思。
Device does not contain a recognized partition table
使⽤磁盘标识符 0x12c57921 创建新的 DOS 磁盘标签。
命令(输⼊ m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使⽤默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,⼤⼩设为 1 GiB
命令(输⼊ m 获取帮助):p
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区⼤⼩(逻辑/物理):512 字节 / 512 字节
I/O ⼤⼩(最⼩/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x12c57921
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 2099199 1048576 83 Linux
命令(输⼊ m 获取帮助): w # 保存
[root@chenyang ~]# lsblk /dev/sdb # 查看分区信息
磁盘分区的格式化及挂载
mkfs.xfs : 性能强,功能完善
mkfs.ext : 性能稍弱
mkfs.btrfs : 性能最强 新出不久
'''
磁盘必须格式化制作⽂件系统,然后挂载才能使⽤
针对⼀块硬盘/dev/sdb
可以不分区,直接格式化制作⽂件系统
也可以基于mbr或者gpt分区⽅式分区完毕后,针对某⼀个分区⽐如/dev/sdb1制作⽂件系统
'''
# 1.创建分区并保存
[root@egon ~]# fdisk /dev/sdb
...
命令(输⼊ m 获取帮助): w # 保存
# 2.格式化文件系统
[root@egon ~]# mkfs.xfs /dev/sdb # /dev/sdb整体就是⼀个分区
# 3.挂载分区到文件夹上
[root@egon ~]# mount /dev/sdb1 /opt/
命令 分区路径 挂载路径
# 4.查看挂载详情
[root@python mnt]# df -h
# 5.卸载
umount /dev/sdb1 # 或者umount /opt
(umount -l /dev/sdb1 # 或者umount -l /opt 强制卸载)
# 错误处理
[root@python mnt]# umount /mnt
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
解决:
当前所在目录为挂载目录,切换一个目录即可。
GPT****分区
新增⼀块2500G的盘,然后⽤GPT的⽅式格式化
# 需要安装命令
[root@egon ~]# yum install gdisk -y
[root@egon ~]# gdisk /dev/sdc
......
Command (? for help): m 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 #打印菜单
gdisk创建分区
Command (? for help): n # 新建
Partition number (1-128, default 1): # 直接回⻋,默认分区号为1
First sector (34-5242879966, default = 2048) or {+-}size{KMGTP}: #直接回⻋,使⽤默认的起始位置
Last sector (2048-5242879966, default = 5242879966) or {+-}size{KMGTP}: +1G # 设定1G的空间
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): L # 列出所有⽂件系统
......会看到⼀系列⽂件系统信息,默认的8300编号代表Linux filesystem,⽤它就好
Hex code or GUID (L to show codes, Enter = 8300): # 直接回⻋⽤默认8300就好
Changed type of partition to 'Linux filesystem'
Command (? for help): p # 打印查看
......
Number Start (sector) End (sector) Size Code Name
1 2048 2099199 1024.0 MiB 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 # 输⼊y保存
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
磁盘
磁盘 -> 分区 -> /lsblk 磁盘lsblk /dev/sdb 查看特定磁盘# 从分区到使用1、格式化文件系统2、挂载到对应目录(mount)
- 磁盘分区的格式化及挂载
mkfs.xfs : 性能强,功能完善
mkfs.ext : 性能稍弱
mkfs.btrfs : 性能最强 新出不久
'''
磁盘必须格式化制作⽂件系统,然后挂载才能使⽤
针对⼀块硬盘/dev/sdb
可以不分区,直接格式化制作⽂件系统
也可以基于mbr或者gpt分区⽅式分区完毕后,针对某⼀个分区⽐如/dev/sdb1制作⽂件系统
'''
# 1.创建分区并保存
[root@egon ~]# fdisk /dev/sdb
...
命令(输⼊ m 获取帮助): w # 保存
# 2.格式化文件系统
[root@egon ~]# mkfs.xfs /dev/sdb # 格式化分区 /dev/sdb整体就是⼀个分区
# 3.挂载分区到文件夹上
[root@egon ~]# mount /dev/sdb1 /opt/
命令 分区路径 挂载路径
# 类似python中django的路由匹配,几个路由对应一个视图层函数那种感觉。
# 4.查看挂载详情
[root@python mnt]# df -h
# 5.卸载
umount /dev/sdb1 # 或者umount /opt
(umount -l /dev/sdb1 # 或者umount -l /opt 强制卸载)
# 错误处理
[root@python mnt]# umount /mnt
umount: /mnt:目标忙。
(有些情况下通过 lsof(8) 或 fuser(1) 可以找到有关使用该设备的进程的有用信息)
解决:
当前所在目录为挂载目录,切换一个目录即可。
一个分区可以挂载多个目录。
一个目录也可以挂载多个分区。你可以在/mnt/中建立多个文件夹,分别挂载不同的目录。
那个也是可以的,但是后挂载的会把前面的覆盖(前一分区的数据还在,只是从目录上就只能看见后一分区的数据)。
要想两个分区“叠加”到同一个目录的话要用aufs来挂载。你可以去看下http://www.linuxprobe.com/chapter-06.html

浙公网安备 33010602011771号