20-磁盘分区

这篇博客详细介绍了Linux磁盘分区的概念,包括主分区和扩展分区的区别,以及MBR的相关信息。此外,还讨论了如何使用fdisk进行分区管理,创建和格式化文件系统,特别是针对swap文件系统的操作。同时,讲解了文件系统类型如vfat32的使用,以及挂载、df和du命令的用途。最后,提到了inode的作用以及删除、移动和复制文件的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

磁盘管理

  • 分区类型 管理分区 管理文件系统 挂载设备 管理虚拟内存swap

主分区4个:3个主分区1个扩展分区-mbr
446byte bootloader
64byte分区表 16byte=1个分区
2byte 55AA

  扩展分区
   du -Th
   [root@localhost ~]# df -Th  #查看已挂载信息
		文件系统       类型      容量  已用  可用 已用% 挂载点
		/dev/sda2      xfs       6.0G  4.0G  2.1G   67% /

fdisk /dev/sda #磁盘操作
m 获取帮助
p 打印分区信息
n 新建分区
t 更改分区类型
d 删除分区
w 写入磁盘

添加磁盘后执行操作(vm)
	 echo "- - -" > /sys/class/scsi_host/host0/scan
  	 echo "- - -" > /sys/class/scsi_host/host1/scan
	 echo "- - -" > /sys/class/scsi_host/host2/scan
同步分区信息
	查看分区
		ls /dev/sd*
		cat /proc/patitions
		lsblk 
[root@localhost ~]# partprobe -s
		/dev/sda: msdos partitions 1 2 3 4 <5 6>
		/dev/sdb: msdos partitions 1 2 3
	
同步分区信息,查看分区信息			
	[root@localhost ~]# partx -a /dev/sda
		partx: /dev/sda: error adding partitions 1-6
		[root@localhost ~]# ls /dev/sda*
		/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5  /dev/sda6

	[root@localhost ~]# lsblk 
		sdb                   8:16   0    2G  0 disk 
		├─sdb1                8:17   0  100M  0 part 
		│ └─lianxi-lianxivg 253:1    0   12M  0 lvm  
		├─sdb2                8:18   0  100M  0 part 
		└─sdb3                8:19   0  200M  0 part 
		sr0                  11:0    1  7.2G  0 rom 
	[root@localhost ~]# cat /proc/partitions 
		   major minor  #blocks  name
		   8       16    2097152 sdb
		   8       17     102400 sdb1
		   8       18     102400 sdb2
		   8       19     204800 sdb3

mount 挂载点
  nfsd on /proc/fs/nfsd type nfsd (rw,relatime)
 
[root@localhost ~]# partx --h

用法:
   partx [-a|-d|-s|-u] [--nr <n:m> | <分区>] <磁盘>

选项:
 -a, --add            添加指定的分区或所有分区
 -d, --delete         删除指定的分区或所有分区
 -s, --show           列出分区

文件系统:
blkid查看硬盘的编号
mkfs -t 指定文件系统类型

	选项:
	 -t, --type=<类型>  文件系统类型;若不指定,将使用 ext2

	mkfs.ext4=mkfs -t ext4=mke2fs -t ext4 /dev/sda3
	 blkid /dev/sda3
	/dev/sda3: UUID="7764a875-81f3-45ba-bd25-56ea08eae290" SEC_TYPE="ext2" TYPE="ext3

	mke2fs --h
		Usage: mke2fs [-c|-l filename] 
			[-b block-size] 块
			[-J journal-options] ext3有日志功能的文件系统
			[-m reserved-blocks-percentage] 指定预留空间的百分比
			[-o creator-os] 创建文件系统 (has_journal=ext3)
			[-g blocks-per-group] 
			[-L volume-label] 标签
			[-t fs-type]

	e2label 卷标设置
		e2label /dev/sda3 查看label
			 mkfs.ex4 -L TEST /dev/sda5
		[root@localhost ~]# blkid /dev/sda5
			/dev/sda5: LABEL="TEST" UUID="e761e88d-f389-403f-80f4-d7861ce1de89" TYPE="ext4" 

		[root@localhost ~]# e2label  /dev/sda5  mydata
			[root@localhost ~]# blkid /dev/sda5
			/dev/sda5: LABEL="mydata" UUID="e761e88d-f389-403f-80f4-d7861ce1de89" TYPE="ext4" 


	tune2fs 查看或修改ext系列系统的某些属性 [预留空间等]		    
		[-m reserved_blocks_percent]  预留百分比
		[-o [^]mount_options[,...]]  挂选项
		[-L volume_label] 标签
		-O [^]feature开启或关闭某种特性
		
		开启文件的facl选项
		[root@node1 ~]# tune2fs -o acl /dev/sdb1
		tune2fs 1.42.9 (28-Dec-2013)
		[root@node1 ~]# tune2fs -l /dev/sdb1 | grep acl
		Default mount options:    user_xattr acl

	dumpe2fs 显示文件系统信息
			 -h 超级块信息

	fsck 文件系统检测
		因意外中止或系统崩溃原因导致操作非正常终止的时候可能需要检测并修复
		  
		   ext系列文件:专用工具
		    E2FSCK
		     -p  Automatic repair (no questions)
			 -n  Make no changes to the filesystem
			 -y  Assume "yes" to all questions
			 -c  Check for bad blocks and add them to the badblock list
			 -f  强制检测

		fsck
			     -a 自动修复所有错误
			     -t 指定文件系统类型
			     -r 交互式修复

		[root@node1 ~]# dd if=/dev/zero of=/dev/sdb1 bs=1M count=10
			记录了10+0 的读入
			记录了10+0 的写出
			10485760字节(10 MB)已复制,0.0207129 秒,506 MB/秒

		[root@node1 ~]# tune2fs -l /dev/sdb1
			tune2fs 1.42.9 (28-Dec-2013)
			tune2fs: Bad magic number in super-block 当尝试打开 /dev/sdb1 时
			找不到有效的文件系统超级块.
		
		[root@node1 ~]# umount /dev/sdb1 #需要取消挂载然后在修复
		[root@node1 ~]# fsck -a /dev/sdb1  


		blkid命令 
			-L 根据label查找设备
			-U 通过uuid进行查找

		取出uuid
		[root@node1 ~]# sed -rn 's@^UUID=(.*) /boot .*@\1@p' /etc/fstab 
			a380558e-07c0-4abe-a0b6-9a0d038e86fd

		把第一个文件的当做搜素条件-即取交集
			f1:1,2,3,4 f2:2,3,4
			[root@node1 ~]# grep -f f1 f2
			2
			3
			4

swap文件系统

 linux的交换分区必须使用独立的文件系统
  且文件系统的systemid 必须是82
mkswap 创建swap设备
		 swapon 定义在/etc/fstab文件中的所有swap设备
		 swapoff 
  [root@localhost ~]# mkswap --h
	选项:
	 -c, --check               创建交换区前检查坏块
	 -f, --force               允许交换区大于设备大小
	 -p, --pagesize SIZE       指定页大小为 SIZE 字节
	 -L, --label LABEL         指定标签为 LABEL             

	[root@localhost ~]# mkswap /dev/sda5
	mkswap: /dev/sda5: warning: wiping old ext4 signature.
	正在设置交换空间版本 1,大小 = 9212 KiB
	无标签,UUID=0210c3c4-8f06-405f-b981-01bdec7690fc
	[root@localhost ~]# blkid /dev/sda5
	/dev/sda5: UUID="0210c3c4-8f06-405f-b981-01bdec7690fc" TYPE="swap" 

linux和windows都能识别的文件系统vfat32
mkfs.vfat

挂载

mount/umount
 根文件系统之外的其他文件系统能够被访问,都必须通过关联到跟文件系统上的某个目录来实现,此关联操作即为挂载目录被称为挂载点
     -r 只读挂载
     -w 读写挂载
     -n 默认情况下设备挂载卸载的操作会同步到/etc/matb的文件中 -n会不同步到文件
     -l 使用label卷标挂载
      mount -L ccc /mnt
      [root@localhost ~]# mount -L ccc /mnt
		mount:/dev/sda5 已经挂载到 /mnt 上

	注:当挂载点有数据,再次挂载新设备会被覆盖挂载,取消后数据仍在

[root@localhost ~]# mount /dev/sda3 /mnt
[root@localhost ~]# mount
  /dev/sda3 on /mnt type xfs (rw,relatime,seclabel,attr2,inode64,noquota)
  
[root@localhost ~]# lsblk /dev/sda5
	NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
	sda5   8:5    0   9M  0 part /mnt

  cat /etc/mtab 所有的挂载都会被写到 /etc/mtab 
   /dev/sda5 /mnt ext4 rw,seclabel,relatime,data=ordered 0 0


-o 挂载选项
  acl 支持使用facl
  remount 重新挂载
  ro只读
  rw读写
  dev/nodev 次设备上是否允许创建设备文件
  exec/noexec 是否允许允许设备上的程序文件
  auto/noauto 允许自动被挂载
  user/nouser 是否允许非管理员挂载文件系统
  默认情况下:rw.suid.dev.exec.auto.nouser.async.relatime
ex1: mount -o acl,remount /dev/sda3
   /dev/sda3 on /mnt type ext2 (rw,relatime,seclabel)

ex2: tune2fs -o acl /dev/sda3

 
查看当前系统所有已挂载的设备b --- monut --bind  源目录 目标目录
  mount cat /etc/mtab cat /proc/mounts

挂载光盘
   mount -r /dev/cdrom /opt
   光盘的设备文件 /dev/cdrom /dev/dvd

挂载本地的回环设备
    mount -o loop  iso文件 /media 

	1.设备文件,label,uuid,伪文件
	2.挂载点
	   swap类型的设备的挂载点为swap
	3.文件系统类型
	4.挂载选项
	  defaults 使用默认挂载选项
	  如果同时指明多个挂载选项,彼此间已
	5.转存频率
	   0 从不备份
	   1 每天备份
	   2 每隔一天
	6.自检次序
	   0 不自检
	   1 首先自检,通常是/文件系统
	   2 次级自检

[root@localhost ~]# mount -a
	可以自动挂载定义在/etc/fstab文件中的设备
	/dev/sda5                /mnt   ext4    defaults         0 0 

df
-l 只显示本地文件的相关信息
-i 显示inode的使用量

du 文件大小
-s 目录
-h 易读的

inode与文件名的对应关系
删除文件:将文件指向的所有data block 标记为未使用的状态,将inode标记为未使用

移动和复制文件:
1.复制cp
新建一个文件将inode指向新的文件
2.mv
在同一个分区下移动文件只是将文件的路径映射关系修改了
在不同文件系统,则是复制目标文件并删除原文件
[root@localhost ~]# ls -i fstab
34658243 fstab

	[root@localhost ~]# ls -i /tmp/fstab 
	34658243 /tmp/fstab

练习:

1.创建一个10g的分区并格式化为ext4的文件系统
[root@localhost ~]# mkfs -b 2048 -t ext4 -L mydata /dev/sda3
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=mydata
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)

  1.block大小 2048
  2.预留空间2%,卷标mydata
  3.挂载到/mydata,禁止自动运行,不更新文件的时间戳,开机自动挂载 (/etc/fstab)
		make2fs -m 2 -L yydata /dev/sdb1
		mount -o noexex /dev/sdb1

2.创建一个大小为1g的swap分区,并且启动
mkswap /ev/sdb1
swap on

实验:
备份mbr和恢复
    0.scp mbr /x  d到另外一台机器
    1.dd if=/dev/sda of=/app/mbr bs=1 count=512
    2.rescue mode
    3.scp remoteip;/root/mbr /
    4.dd if=mbr of=/dev/sda
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值