磁盘管理操作


磁盘管理操作

虚拟环境centos7.3

fdisk
用法:
 fdisk [选项] <磁盘>    更改分区表
 fdisk [选项] -l <磁盘> 列出分区表
 fdisk -s <分区>        给出分区大小(块数)

选项:
 -b <大小>             扇区大小(512、1024、2048或4096)
 -c[=<模式>]           兼容模式:“dos”或“nondos”(默认)
 -h                    打印此帮助文本
 -u[=<单位>]           显示单位:“cylinders”(柱面)或“sectors”(扇区,默认)
 -v                    打印程序版本
 -C <数字>             指定柱面数
 -H <数字>             指定磁头数
 -S <数字>             指定每个磁道的扇区数

一、磁盘分区

  1.在做磁盘分区之前关闭虚拟机添加一块20G的磁盘。

  

  添加之后记得点下面的确定可以应用上。

  2.添加完成之后开始查看硬盘是否应用成功。sda是虚拟机完成安装的时候自己带的硬盘,sdb是刚刚新安装的20G硬盘。

[root@localhost ~]# lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   20G  0 disk
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0   19G  0 part
  ├─cl-root 253:0    0   17G  0 lvm  /
  └─cl-swap 253:1    0    2G  0 lvm  [SWAP]
sdb           8:16   0   20G  0 disk
sr0          11:0    1  4.1G  0 rom

  3.开始磁盘分区

[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0xccd887dc 创建新的 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、p、e、l、w等。

  n:添加一个分区

  p:创建新的主分区

  e:创建一个扩展分区

  l:创建逻辑分区

  w:保存磁盘并退出

  4.创建一个1G的主分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+1G
分区 1 已设置为 Linux 类型,大小设为 1 GiB

   5.继续输入创建一个5G的扩展分区(也可以不设置5G,在+5G的位置输入,默认也可以)

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e
分区号 (2-4,默认 2):2
起始 扇区 (2099200-41943039,默认为 2099200):
将使用默认值 2099200
Last 扇区, +扇区 or +size{K,M,G} (2099200-41943039,默认为 41943039):+5G
分区 2 已设置为 Extended 类型,大小设为 5 GiB

   6.逻辑分区创建在扩展分区空间内才能创建

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 5
起始 扇区 (2101248-12584959,默认为 2101248):
将使用默认值 2101248
Last 扇区, +扇区 or +size{K,M,G} (2101248-12584959,默认为 12584959):+4G
分区 5 已设置为 Linux 类型,大小设为 4 GiB

   7.磁盘分区完成使用w命令保存退出

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

  8.让内核识别硬盘分区的变化

[root@localhost ~]# partprobe /dev/sdb

  9.查看分区是否创建成功(查看命令fdisk -l)  

[root@localhost ~]# fdisk -l
***sda***
磁盘 /dev/sdb:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xccd887dc

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     2099199     1048576   83  Linux
/dev/sdb2         2099200    12584959     5242880    5  Extended
/dev/sdb5         2101248    10489855     4194304   83  Linux

     这里的lsblk查看的有 sdb1、sdb2、sdb5创建完成。

    磁盘分区中的前四个分区是留给主分区和扩展分区的,所以逻辑分区是从第五个开始的。

  10.创建文件系统/格式化

    1)将sdb1格式化成ext4格式。

[root@localhost ~]# mkfs -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
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: 完成

       2)将sdb5格式化成xfs格式。

[oot@localhost ~]# mkfs.xfs /dev/sdb5
meta-data=/dev/sdb5              isize=512    agcount=4, agsize=262144 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=1048576, 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

  11.将sdb1、sdb5分别临时挂载在新建的/data/web和/data/linux中,关机重启之后自动卸载

[root@localhost ~]# mkdir -p data/web/
[root@localhost ~]# mkdir -p data/linux/
[root@localhost data]# ls
linux  web
[root@localhost web]# mount /dev/sdb1 /data/web/
 mount:/dev/sdb1 已经挂载到 /data/web 上
[root@localhost ~]# mount /dev/sdb5 /data/linux
mount: /dev/sdb5 已经挂载到 /data/linux 上

  12.执行上面第8的语句,查看sdb1和sdb5挂载情况、分区的大小、还有文件系统

[root@localhost ~]# df -hT |grep sdb
/dev/sdb1           ext4      976M  2.6M  907M    1% /data/web
/dev/sdb5           xfs       4.0G   33M  4.0G    1% /data/linux

  13.卸载挂载

[root@localhost ~]# umount /dev/sdb5

  14.实现开机自动挂载

[root@localhost ~]# tail -2 /etc/fstab 
/dev/sdb1    /data/web    ext4    defaults    0 0
/dev/sdb5    /data/linux    xfs    defaults    0 0

  15.挂载/etc/fstab文件上的所有磁盘信息  

[root@localhost ~]# mount -a

  16.永久挂载完成关机之后挂载信息任然在

[root@localhost ~]# df -hT | grep "sdb"
/dev/sdb1           ext4      976M  2.6M  907M    1% /data/web
/dev/sdb5           xfs       4.0G   33M  4.0G    1% /data/linux

二、扩展swap分区

  1.查看swap分区

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1823         144        1213           8         465        1483
Swap:          2047           0        2047

  2.扩展swap分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l
添加逻辑分区 6
起始 扇区 (10491904-12584959,默认为 10491904):
将使用默认值 10491904
Last 扇区, +扇区 or +size{K,M,G} (10491904-12584959,默认为 12584959):+500M
分区 6 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):t
分区号 (1,2,5,6,默认 6):6
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”

  3.扩展swap分区完成

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1823         143        1205           8         474        1484
Swap:          2047           0        2047

   4.挂载swap分区

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

*** ***
/dev/sdb6    swap    swap        defaults    0 0

  5.挂载/etc/fsta文件中所有的设备

[root@localhost ~]# mount -a

  6.创建swap的文件系统

[root@localhost ~]# mkswap /dev/sdb6
正在设置交换空间版本 1,大小 = 511996 KiB
无标签,UUID=eaabc8aa-073c-492f-aa89-1c97d06b8fcd

  7.启动swap分区

[root@localhost ~]# swapon -a

  8.查看swap分区

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   availa
bleMem:           1823         144        1204           8         474        1
483Swap:          2547           0        2547

  9.关闭swap分区

[root@localhost ~]# swapoff /dev/sdb6

三、限制磁盘存储数据的因素

  inode 也i就是节点  和文件数量

1.查看inode节点的数量

[root@localhost ~]# df -i /dev/sdb1
文件系统       Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1      65536      11   65525       1% /data/web

这里的sdb1的inode节点的数量有65525

2.查看inode节点剩余的数量

[root@localhost ~]# stat /etc/fstab 
  文件:"/etc/fstab"
  大小:576           块:8          IO 块:4096   普通文件
设备:fd00h/64768d    Inode:16799607    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:etc_t:s0

3.查看/data/web目录下的文件

[root@localhost ~]# ls /data/web/
***略***
b9999  lost+found