[磁盘操作]

[磁盘操作]

基础篇 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 ⽬录总结⼀下

  1. linux 的⽬录中有且只要⼀个根⽬录 /

  2. linux 的各个⽬录存放的内容是规划好,不⽤乱放⽂件。

  3. linux 是以⽂件的形式管理我们的设备,因此 linux 系统,⼀切皆为⽂件。

  4. linux 的各个⽂件⽬录下存放什么内容,⼤家必须有⼀个认识。

  5. 学习后,你脑海中应该有⼀颗 linux ⽬录树

Linux 磁盘分区、挂载****分区基础知识

mbr 分区:

最多⽀持四个主分区

系统只能安装在主分区

扩展分区要占⼀个主分区

MBR 最⼤只⽀持 2TB,但拥有最好的兼容性

gtp分区

⽀持⽆限多个主分区(但是操作系统可能显示,⽐如Windows最多⽀持128个分区)

最⼤⽀持18EB⼤容量

windows 下的磁盘分区

Linux 分区

原理介绍

  1. Linux 来说⽆论有⼏个分区,分给哪⼀⽬录使⽤,它归根结底就只有⼀个根⽬录,⼀个独⽴且唯⼀的⽂件结构 ,

Linux 中每个分区都是⽤来组成整个⽂件系统的⼀部分。

  1. Linux 采⽤了⼀种叫“载⼊”的处理⽅法,它的整个⽂件系统中包含了⼀整套的⽂件和⽬录, 且将⼀个分区和⼀个

⽬录联系起来。这时要载⼊的⼀个分区将使它的存储空间在⼀个⽬录下获得。

3)示意图

硬盘说明

  1. 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
posted @ 2021-06-12 13:38  刘较瘦丫  阅读(167)  评论(0)    收藏  举报