运维开发网

磁盘分区和格式化

运维开发网 https://www.qedev.com 2020-08-17 12:18 出处:51CTO 作者:六六天一
磁盘格式化常用的磁盘格式xfs:常用于centos7系统ext4:常用与centos6系统ext3:用于centos5系统虚拟机添加新磁盘如果fdisk无法识别到,可以重启系统,或者echo"---">/sys/class/scsi_host/host0/scanmount查看当前磁盘使用格式[root@jinkai01tmp]#mount|grep"/dev/

df命令

用于查看已挂载磁盘的总容量、使用容量、属于容量;不加参数以kb为单位显示;

实验1:

[root@jinkai01 ~]# df

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16558080 1337496 15220584 9% /

devtmpfs 485820 0 485820 0% /dev

tmpfs 497948 0 497948 0% /dev/shm

tmpfs 497948 7828 490120 2% /run

tmpfs 497948 0 497948 0% /sys/fs/cgroup

/dev/sda1 201380 112764 88616 56% /boot

tmpfs 99592 0 99592 0% /run/user/0

参数:

-i:表示查看inodes的使用情况,如果使用已用100%,即使磁盘空间富余,也会提示磁盘空间已满;

-h:表示使用合适的单位显示,例如GB/TB/MB;

-k、-m:分别表示已KB和MB为单位显示;

实验1:查看inodes使用情况,将tmpfs过滤掉

grep -v 的作用是过滤掉包含tmpfs字符串的一行

[root@jinkai01 ~]# df -i | grep -v tmpfs

文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点

/dev/mapper/centos-root 8284160 31618 8252542 1% /

/dev/sda1 102400 326 102074 1% /boot

实验2:使用合适单位显示磁盘空间

[root@jinkai01 ~]# df -h | grep -v tmpfs

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16G 1.3G 15G 9% /

/dev/sda1 197M 111M 87M 56% /boot

实验3:用MB和KB来显示磁盘空间;

[root@jinkai01 ~]# df -m | grep -v tmpfs

文件系统 1M-块 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16170 1307 14864 9% /

/dev/sda1 197 111 87 56% /boot

[root@jinkai01 ~]# df -k | grep -v tmpfs

文件系统 1K-块 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16558080 1337452 15220628 9% /

/dev/sda1 201380 112764 88616 56% /boot

du命令

用来查看某个目录或文件所占空间的大小;

格式:

du [参数][文件或目录名]

-a:表示全部文件和目录的大小都列出来,默认单位为kb;

-b:表示列出值为B为单位输出;

-m:表示以M为单位输出;

-h:表示自动调节单位显示,在数值后面加上单位表示;(推荐使用)

-s:表示只列出总和;例如du -s /root/ 只会列出root目录的作用空间,不会显示目录下的子目录文件;(推荐与-h一起使用)

实验1:查看/root/目录占用空间大小,自动调节实用单位显示;

[root@jinkai01 ~]# du -sh /root/

72K /root/

磁盘分区

科普知识:主分区与扩展分区以及逻辑分区

假设Windows系统用一个硬盘划分CDEF四个区

首先:划分一个主分区C盘

C盘为系统盘,那么我们就把它设置为主分区开机引导系统启动;

剩下的划分为一个扩展分区或多个扩展分区;

然后将扩展分区转化为逻辑分区才是DEF盘;

DEF盘首先是逻辑分区才能使用,而逻辑分区是扩展分区转化来的;

首先我们先增加一块硬盘,20G左右;

虚拟机用户步骤如下:

1、右键当前虚拟机选项卡,选“设置”;

2、点击对话框中的“添加”按钮,在弹出来的框框中选择“硬盘”,下一步;

3、选择新磁盘的大小20G,点击下一步;

4、在后面的对话框中默认配置,直接下一步,直到完成为止**;

fdisk命令

这是一个磁盘分区工具,只能划分小于2TB的分区;

格式:

fdisk [参数][设备名称]

查看系统中磁盘设备以及分区情况

第一步:查看模式

使用fdisk -l我们会发现系统拥有两块硬盘,分别是21.5GB的sda与21.5GB的sdb;

[root@jinkai01 ~]# fdisk -l /dev/sd*

磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x000df39d

设备 Boot Start End Blocks Id System

/dev/sda1 * 2048 411647 204800 83 Linux

/dev/sda2 411648 41943039 20765696 8e Linux LVM

磁盘 /dev/sda1:209 MB, 209715200 字节,409600 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sda2:21.3 GB, 21264072704 字节,41531392 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

第二步:分区模式

使用fdisk命令不带参数,进入分区模式;

fdisk /dev/sdb

[root@jinkai01 ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-Linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

Device does not contain a recognized partition table

使用磁盘标识符 0x6eda423e 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):m

命令操作

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition

g create a new empty GPT partition table

G create an IRIX (SGI) partition table

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

t change a partition's system id

u change display/entry units

v verify the partition table

w write table to disk and exit

x extra functionality (experts only)

**其中命令参意思为:

n:建立一个新的分区;

w:保存;

q:退出;

d:删除一个分区;

p:表示打印当前磁盘的分区情况

我们先选择n建立一个新分区**

命令(输入 m 获取帮助):n

Partition type:

p primary (0 primary, 0 extended, 4 free)

e extended

此时提示我们两个选项

p:主分区(最多4个,主分区+扩展分区=4)

e:扩展分区

根据提示我们对新分区定义容量以及分区号

Select (default p): p

分区号 (1-4,默认 1):1

起始 扇区 (2048-41943039,默认为 2048):

将使用默认值 2048

Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+2G

分区 1 已设置为 Linux 类型,大小设为 2 GiB

分区好后,我们使用p来查看分区情况;

我们已经分好了4个区,3个主分区、一个扩展分区;

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x6eda423e

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 4196351 2097152 83 Linux

/dev/sdb2 4196352 6244351 1024000 83 Linux

/dev/sdb3 6244352 8292351 1024000 83 Linux

/dev/sdb4 8292352 16680959 4194304 5 Extended

命令(输入 m 获取帮助):

注意:扩展分区要设置成逻辑分区才能正常使用,也就是说划分扩展分区后,还要将扩展分区划分成逻辑分区;

扩展分区划分逻辑分区:

4为扩展分区,123为主分区;逻辑分区将4号扩展分区划分为5和6;划分完1234后,再使用n新建会将4扩展分区转化为逻辑分区5和6(以及78910等)

命令(输入 m 获取帮助):n

All primary partitions are in use

添加逻辑分区 5

起始 扇区 (8294400-16680959,默认为 8294400):

将使用默认值 8294400

Last 扇区, +扇区 or +size{K,M,G} (8294400-16680959,默认为 16680959):+1000M

分区 5 已设置为 Linux 类型,大小设为 1000 MiB

命令(输入 m 获取帮助):n

All primary partitions are in use

添加逻辑分区 6

起始 扇区 (10344448-16680959,默认为 10344448):

将使用默认值 10344448

Last 扇区, +扇区 or +size{K,M,G} (10344448-16680959,默认为 16680959):+1000M

分区 6 已设置为 Linux 类型,大小设为 1000 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x6eda423e

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 4196351 2097152 83 Linux

/dev/sdb2 4196352 6244351 1024000 83 Linux

/dev/sdb3 6244352 8292351 1024000 83 Linux

/dev/sdb4 8292352 16680959 4194304 5 Extended

/dev/sdb5 8294400 10342399 1024000 83 Linux

/dev/sdb6 10344448 12392447 1024000 83 Linux

命令(输入 m 获取帮助):

记得要用w保存好刚刚的分区;

命令(输入 m 获取帮助):w

The partition table has been altered!

Calling ioctl() to re-read partition table.

正在同步磁盘

删除分区:

使用d选项来删除分区;

首先必须加入分区界面,也就是fdisk /dev/sdb

在界面按d删除,然后选中分区号,就可以删除分区了;

[root@jinkai01 ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-Linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。

使用写入命令前请三思。

命令(输入 m 获取帮助):d

分区号 (1-6,默认 6):6

分区 6 已删除

命令(输入 m 获取帮助):p

磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区

Units = 扇区 of 1 * 512 = 512 bytes

扇区大小(逻辑/物理):512 字节 / 512 字节

I/O 大小(最小/最佳):512 字节 / 512 字节

磁盘标签类型:dos

磁盘标识符:0x6eda423e

设备 Boot Start End Blocks Id System

/dev/sdb1 2048 4196351 2097152 83 Linux

/dev/sdb2 4196352 6244351 1024000 83 Linux

/dev/sdb3 6244352 8292351 1024000 83 Linux

/dev/sdb4 8292352 16680959 4194304 5 Extended

/dev/sdb5 8294400 10342399 1024000 83 Linux

命令(输入 m 获取帮助):

磁盘格式化

常用的磁盘格式

xfs:常用于centos7系统

ext4:常用与centos6系统

ext3:用于centos5系统

虚拟机添加新磁盘如果fdisk 无法识别到,可以重启系统,或者echo "- - -" > /sys/class/scsi_host/host0/scan

mount

查看当前磁盘使用格式

[root@jinkai01 tmp]# mount | grep "/dev/sd"

/dev/sda1 on /boot type xfs (rw,relatime,attr2,inode64,noquota)

mke2fs命令

不支持xfs格式化

mke2fs [参数][设备]

参数:

-b:表示分区时设定每个数据区块占用的空间大小。目前,每个数据块支持1024B、2048B以 及4096B。

-i:表示设定inode的大小。

-N:表示设定inode的数量。有时默认的inode数不够用,所以要自定义inode的数量。

-c:表示在格式化前先检测一下磁盘是否有问题。加上这个选项后,运行速度会非常慢。

-L:表示预设该分区的标签(label)。

-j:表示建立ext3格式的分区。如果使用mkfs.ext3格式,就不用加这个选项了。

-t:用来指定文件系统的类型,可以是ext2、ext3 ,也可以是 ext4。

-m:指定预留空间大小

实验1:指定/dev/sdb2的文件类型为ext4

[root@jinkai01 tmp]# mke2fs -t ext4 /dev/sdb2

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

Allocating group tables: 完成

正在写入inode表: 完成

Creating journal (8192 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

[root@jinkai01 tmp]# blkid /dev/sdb2

/dev/sdb2 UUID="2d5c5887-f777-46b9-b559-660b145e7365" TYPE="ext4"

实验2:指定/dev/sdb2的名称或标签为test02

[root@jinkai01 tmp]# mke2fs -L test02 /dev/sdb2

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=test02

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65536 inodes, 262144 blocks

13107 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=268435456

8 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

Allocating group tables: 完成

正在写入inode表: 完成

Writing superblocks and filesystem accounting information: 完成

[root@jinkai01 tmp]# blkid /dev/sdb2

/dev/sdb2: LABEL="test02" UUID="deff6aba-d524-49e0-b99e-6e54fbcd298c" TYPE="ext2"

实验3:调整块和inode的比例以及预留空间的百分比

[root@jinkai01 /]# mke2fs -i 8192 -t ext4 /dev/sdb1

mke2fs 1.42.9 (28-Dec-2013)

文件系统标签=

OS type: Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

262144 inodes, 524288 blocks 默认比例是1:4 一个inod 对应四个块,一个块是4KB,四个块就是16KB

26214 blocks (5.00%) reserved for the super user[root@jinkai01 /]# mke2fs -m 1 -t ext4 /dev/sdb1

5242 blocks (1.00%) reserved for the super user

mkfs命令

格式:

mkfs.[文件格式][参数][设备]

mkfs.xfs -f /dev/sdb3

参数:

-f:强制执行

-b:指定块文件的大小,比如-b 2048 代表指定块大小为2048B也就是2KB

[root@jinkai01 tmp]# mkfs.xfs -f /dev/sdb3

meta-data=/dev/sdb3 isize=512 agcount=4, agsize=65536 blks

= sectsz=512 attr=2, projid32bit=1

= crc=1 finobt=0, sparse=0

data = bsize=4096 blocks=262144, imaxpct=25

= sunit=0 swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0 ftype=1

log =internal log bsize=4096 blocks=2560, version=2

= sectsz=512 sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0

blkid命令

查看硬盘分区的格式与UUID

格式:

blkid [设备]

blkid /dev/sdb3

[root@jinkai01 tmp]# blkid /dev/sdb3

/dev/sdb3: UUID="64abf4be-acc2-4582-90db-6e6ea02f6ca7" TYPE="xfs"

磁盘挂载

挂载磁盘:建议你在挂载磁盘分区时,尽量使用UUID或者LABEL这两种方法

mount命令

-a 选项:重新挂载

-t选项:用来指定挂载的分区类型,默认不指定,会自动识别。

-o选项:用来指定挂载的分区有哪些特性,即/etc/fstab配置文件中第4列的那些

格式:

mount [设备][挂载点]

mount /dev/sdb2 

实验1:将sdb2挂载到/mnt/目录下

[root@jinkai01 tmp]# mount /dev/sdb2 /mnt/

[root@jinkai01 tmp]# df -h | grep -v tmpfs

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16G 1.3G 15G 9% /

/dev/sda1 197M 111M 87M 56% /boot

/dev/sdb2 1008M 1.3M 956M 1% /mnt/etc/fstab

配置文件 /etc/fstab

开机自动挂载设备文件

先查看/etc/fstab文件

[root@jinkai01 tmp]# cat /etc/fstab

/dev/mapper/centos-root / xfs defaults 0 0

UUID=8d93bf04-faef-465d-9e2e-a2398218c404 /boot xfs defaults 0 0

/dev/mapper/centos-swap swap swap defaults 0 0

第1列就是分区的标识,可以写分区的LABEL、分区的UUID,也可以写分区名(/dev/sda1)。

第2列是挂载点。

第3列是分区的格式。

第4列是mount的一些挂载参数。一般情况下,直接写defaults即可。

第5列的数字表示是否被dump备份。1表示备份,0表示不备份。

第6列的数字表示开机时是否自检磁盘。1和2都表示检测,0表示不检测。自检时,1比2优先级高,所以先检测1,再检测2。如果有多个分区需要开机检测,就都设置成2,1检测完后会同时检测2。在CentOS 7系统里,所有分区中该列的值都是0。

着重介绍第4列的常用选项。

async/sync:async表示与磁盘和内存不同步。系统每隔一段时间就会把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中的数据。

auto/noauto:表示开机自动挂载/不自动挂载。

default:表示按照大多数永久文件系统的默认值设置挂载定义,它包含了rw、suid、dev、exec、auto、nouser和async。

ro:表示按只读权限挂载。

rw:表示按可读可写权限挂载。

exec/noexec:表示允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,否则将无法使用系统,甚至连mount命令都无法使用。

user/nouser:表示允许/不允许root外的其他用户挂载分区。为了安全,请用nouser。

suid/nosuid:表示允许/不允许分区有suid属性,一般设置nosuid。

usrquota:表示启动用户的磁盘配额模式。磁盘配额会针对用户限定他们使用的磁盘额度。

grquota 表示启动群组的磁盘配额模式

从中我们发现可以在此文件中修改添加可以添加自动挂载按格式在

文档中添加

/dev/sdb2 /mnt xfs defaults 0 0

使用mount -a自动挂载

[root@jinkai01 ~]# mount -a (前提是先把需要挂载的磁盘写到配置文件里面才行,不然输入命令也无法完成自动挂载)

开机自动挂载的另外一种方法,把挂载命令写入到/etc/rc.d/rc.local 里面,然后给予文件执行权限,chmod a+x /etc/rc.d/rc.local mount 命令最好使用绝对路径 /usr/bin/mount

vim /etc/rc.d/rc.local

/usr/bin/mount UUID="92f01dbf-72b1-49e4-aac6-1485e7124dce" /mnt

[root@jinkai01 ~]# chmod a+x /etc/rc.d/rc.local

卸载磁盘:

umount [设备]

实验:将sdb2卸载

[root@jinkai01 tmp]# df -h | grep -v tmpfs

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16G 1.3G 15G 9% /

/dev/sda1 197M 111M 87M 56% /boot

/dev/sdb2 1008M 1.3M 956M 1% /mnt

[root@jinkai01 tmp]# umount /dev/sdb2

[root@jinkai01 tmp]# df -h | grep -v tmpfs

文件系统 容量 已用 可用 已用% 挂载点

/dev/mapper/centos-root 16G 1.3G 15G 9% /

/dev/sda1 197M 111M 87M 56% /boot

手动增加swap空间

swap类似于Windows的虚拟内存,分区时一般指定虚拟内存的大小是实际内存的2倍;

增加虚拟磁盘的思路为:建立swapfile——>格式化为swap格式——>启用虚拟磁盘

建立swapfile

建立虚拟磁盘/tmp/newdisk,块文件为100M每个,共1个,也就是100M;

[root@jinkai01 /]# dd if=/dev/zero of=/tmp/newdisk bs=100M count=1

记录了1+0 的读入

记录了1+0 的写出

104857600字节(105 MB)已复制,2.89392 秒,36.2 MB/秒

[root@jinkai01 /]# du -sh /tmp/newdisk

100M /tmp/newdisk

格式化新磁盘

mkswap -f [虚拟磁盘路径]

[root@jinkai01 /]# mkswap -f /tmp/newdisk

正在设置交换空间版本 1,大小 = 102396 KiB

无标签,UUID=6e731cb1-8879-4847-902d-a8a85c02d1c1

加载启用虚拟磁盘

swapon [虚拟磁盘路径]

[root@jinkai01 /]# free -m

total used free shared buff/cache available

Mem: 972 124 608 7 239 679

Swap: 4095 0 4095

[root@jinkai01 /]# swapon /tmp/newdisk

swapon: /tmp/newdisk:不安全的权限 0644,建议使用 0600。

[root@jinkai01 /]# free -m

total used free shared buff/cache available

Mem: 972 124 608 7 239 679

Swap: 4195 0 4195

卸载虚拟磁盘

swapoff [虚拟磁盘路径]

swapoff /tmp/newdisk

[root@jinkai01 /]# swapoff /tmp/newdisk

[root@jinkai01 /]# free -m

total used free shared buff/cache available

Mem: 972 124 608 7 239 679

Swap: 4095 0 4095

0

精彩评论

暂无评论...
验证码 换一张
取 消