Linux_管理系统存储

 计算机中存放信息的主要的存储设备就是硬盘,但是硬盘不能直接使用,必须对硬盘进行分割,分割成的一块一块的硬盘区域就是磁盘分区。在传统的磁盘管理中,将一个硬盘分为两大类分区:主分区和扩展分区。由于64位的主分区列表只能记载四个分区的数据,所以最多只能有四个主分区。为了不将存储空间浪费掉,将一个分区设置为扩展分区,再将扩展分区作为一个容器划分为许多的逻辑分区。这样就可以高效的利用存储空间。本篇文章主要讲解了如何划分磁盘的分区。
1 本地存储的识别
查看设备

[root@localhost ~]# fdisk -l		 #查看真实存在的设备
[root@localhost ~]# cat /proc/partitions #查看系统可以识别的设备
[root@localhost ~]# blkid		 #查看系统可用的设备
[root@foundation80 Desktop]# df		 #查看正在挂载的设备

在这里插入图片描述

 由上图可以看出这台主机有一块大小为9663M的sda磁盘,化为3个分区sda1 sda2 sda3

在这里插入图片描述
只有给设备添加文件系统之后才能被系统识别:
在这里插入图片描述
查看正在挂载的设备:
在这里插入图片描述

命名规则:

第一位“s“ #表示磁盘的类型,s=sata
第二位“d“ #disk磁盘
第三位“a“ #第一块磁盘
第四位“1“ #第一块分区

其他设备名称

/dev/vda #虚拟磁盘
/dev/cdrom #光驱
/dev/mapper/* #虚拟设备

2 设备的挂载
 当我把U盘插入电脑,这块U盘就是该系统可以识别的第二块设备,如下图的sdb:
在这里插入图片描述
 当U盘插入电脑,系统会自动将U盘挂载,如下图:
在这里插入图片描述
 将U盘卸载:
在这里插入图片描述
 卸载时如果有以下报错:
在这里插入图片描述
可以通过两种方式解决:

[root@foundation80 ~]#fuserumount 
 -kvm /mnt

在这里插入图片描述
或者:

[root@foundation80 ~]lsof /mnt

在这里插入图片描述
 正常的U盘默认位读写挂载,可以用mount命令查看挂载信息:

[root@foundation80 Desktop]# mount

 -o指定只读挂载设备:

[root@foundation80 Desktop]# mount -o ro /dev/sdb1 /mnt/
[root@foundation80 Desktop]# mount

在这里插入图片描述
 因为是只读挂载,所以不能创建文件:
在这里插入图片描述
 重新恢复为读写挂载:

[root@foundation80 Desktop]# umount /mnt/
[root@foundation80 Desktop]# mount -o rw /dev/sdb1 /mnt/

在这里插入图片描述
 或者使用以下命名,不需要卸载就可以重新挂载:

mount -o remount,rw /dev/sdb1|/mnt	#重新读写挂载

3.创建主分区,扩展分区和逻辑分区
 我现在有一块磁盘vdb,划分主分区vdb1的方式如下:

[root@localhost ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xe02f6cb7.

Command (m for help): n				##新建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)	##分区类型位主分区
   e   extended 				##分区类型位扩展分区
Select (default p): p				##默认位主分区
Partition number (1-4, default 1): 		##主分区id
First sector (2048-20971519, default 2048): 	##此分区起始位置 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M
Partition 1 of type Linux and of size 100 MiB is set	##分区大小

Command (m for help): p					#查看

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xe02f6cb7

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048      206847      102400   83  Linux

Command (m for help): wq				#保存
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

此时vdb1就能被系统识别:
在这里插入图片描述
 给vdb1添加xfs格式的文件系统:

root@localhost ~]# mkfs.xfs /dev/vdb1		#格式化文件系统为xfs

在这里插入图片描述
 将vdb1挂载到/mnt下,给/mnt写入数据就是给vdb1中写入数据:
在这里插入图片描述
 以命令形式的挂载方式都是临时的,当系统重启之后就会失效,要永久挂载必须写入文件中,编辑/etc/fstab文件,添加以下内容:

/dev/vdb1 /mnt xfs defaults 0 0

 然后使策略生效:

[root@localhost ~]# mount -a

在这里插入图片描述
 以相同的方式创建vdb2和vdb3,因为vdb正在使用,所以在划分vdb2和vdb3时不能同步分区表,需要手动同步分区表:

[root@localhost ~]# partprobe 

 当已经有3个主分区,建议将第四个分区划分为扩展分区,并将剩余的空间全部划分为扩展分区。如下图:
在这里插入图片描述
 再次创建分区默认为逻辑分区,不会再询问创建主分区还是扩展分区:
在这里插入图片描述
 通部分区表后如下图:
在这里插入图片描述
 vdb4作为扩展分区是不能被使用,记载的是逻辑分区的分区信息。
4.创建swap分区
 划分一个vdb6作为swap分区,首先划分vdb6:

[root@localhost ~]# fdisk /dev/vdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): n
All primary partitions are in use
Adding logical partition 6
First sector (825344-20971519, default 825344): 
Using default value 825344
Last sector, +sectors or +size{K,M,G} (825344-20971519, default 20971519): +500M	#swap分区大小设置500M
Partition 6 of type Linux and of size 500 MiB is set

Command (m for help): t	#修改vdb6的标签为swap
Partition number (1-6, default 6): 6
Hex code (type L to list all codes): 82	#swap的标签,或者L列出所有标签
Changed type of partition 'Linux' to 'Linux swap / Solaris'

Command (m for help): wq
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

在这里插入图片描述
同步分区表:

[root@localhost ~]# partprobe 

初始化文件系统为swap:

[root@localhost ~]# mkswap /dev/vdb6

在这里插入图片描述
将vdb6加入到swap分区中:

[root@localhost ~]# swapon -a /dev/vdb6 
[root@localhost ~]# swapon -s	#查看swap分区

在这里插入图片描述
将其写入文件中,使swap中添加的vdb6永久有效:

[root@localhost ~]# vim /etc/fstab 

在这里插入图片描述
使文件中的策略立即生效:
在这里插入图片描述
要删除设置的swap分区,必须先关设备再删除设备:
在这里插入图片描述
 当设备挂载之后所有的用户都能从设备中划分所有的空间。可以给设备进行配额,控制用户所能划分的空间大小。
 将之前创建的vdb5初始化文件系统之后,如下图方式进行挂载:

[root@localhost ~]# mount -o usrquota /dev/vdb5 /pub/

 mount可以查看挂载信息:
在这里插入图片描述
 修改/pub/权限,让student用户可以对该目录进行操作,并执行edquota staudent命令,表示对student用户进行配额:
在这里插入图片描述
 执行命令后进入u以下编辑页面,前三个**blocks soft hard **控制大小,后三个控制次数,如图修改表示控制student用户最多划分20M空间:
在这里插入图片描述
 保存退出后切换到student用户进行测试:
在这里插入图片描述
  dd if=/dev/zero of=/pub/file bs=1M count=19表示从/dev/zero中划分1M的数据19分,生成/pub/file文件。
  当file小于20M时可以成功分配,但是当file大于20M后就会报错。成功限制了student用户只能占据20M的空间。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值