磁盘分区的方法

Posted wenrulaogou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了磁盘分区的方法相关的知识,希望对你有一定的参考价值。

1.1 分区简单介绍

 linux里面的分区工具

   fdisk      主要是给磁盘小于2T(只能出来分区表是mbr的)

   parted   主要是给磁盘大于2T(gpt)

创建环境

在虚拟机添加两块硬盘 模拟实验环境 保证有两块新的未使用的磁盘

1.2 /etc/fatab详解

/etc/fatab 开机自动挂载

#

# /etc/fstab

# Created by anaconda on Tue Jul 10 18:21:44 2018

#

# Accessible filesystems, by reference, are maintained under ‘/dev/disk‘

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

UUID=c4f4be67-f408-4f14-b01e-a0c0777932cb  /               ext4          defaults            1                1
  
UUID=8dc40910-35ed-4d1b-acd7-5dad0ad47746  /boot           ext4          defaults            1                2

UUID=09e2ce6c-7249-4239-8843-5ef9cc3a9a99  swap            swap          defaults            0                0

tmpfs                                     /dev/shm         tmpfs         defaults            0                0

devpts                                    /dev/pts         devpts        gid=5,mode=620      0                0
 
sysfs                                     /sys             sysfs         defaults            0                0
 
proc                                      /proc            proc          defaults            0                0

设备分区名称                            第二列挂载点(目录)   文件系统类型      挂载参数           是否备份    是否开机磁盘检查

1.3 显示系统中的uuid

使用blkid 命令可以查看系统磁盘的uuid

[[email protected] ~]# blkid

/dev/sda3: UUID="49bad9e9-cf33-4a15-ba84-4fd28e70bd29" TYPE="ext4"

/dev/sda1: UUID="7426d0f3-56d6-4fa6-a1c3-f2c8632bfbb8" TYPE="ext4"

/dev/sda2: UUID="46bc0a52-b13f-4845-8baa-90207849d5c5" TYPE="swap"

/dev/sdb1: UUID="7101630b-b325-49d1-92b9-0a500c2a07f6" TYPE="ext4"

1.4 fdisk分区

刚才模拟环境添加了两块硬盘

技术分享图片
[[email protected] ~]# fdisk -l|grep sd[a-c]:

Disk /dev/sda: 21.5 GB, 21474836480 bytes

Disk /dev/sdb: 213 MB, 213909504 bytes     这两块就是刚才添加的  213MB

Disk /dev/sdc: 213 MB, 213909504 bytes
View Code

1.4.1 fdisk相关命令

fdisk命令及参数

fdisk -l

      -u 磁盘分区的时候以扇区为单位默认是按照柱面

      -c 关闭dos兼容模式

fdisk内部命令

m      显示帮助

n new  创建分区

p      显示所有分区信息

d      删除分区

w      保存并退出

q      退出不保存

1.4.2 创建一个主分区

如果要把硬盘全部空间都用上   在选择大小那一列 直接回车 不输入内容  默认是按最大空间

创建一个10MB主分区

fdisk -cu关闭dos兼容模式  磁盘分区的时候以扇区为单位默认是按照柱面

[[email protected]-50 ~]# fdisk -cu /dev/sdb 进入fdisk 编辑分区

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x303d0abc.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content wont be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): n     创建分区

Command action              选择分区类型

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1   分区号码

First sector (2048-417791, default 2048):

从哪里开始 (直接回车 按默认)

Using default value 2048  默认选择第一个扇区

Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10M

创建10M的分区  选择+10M

Command (m for help): p          p显示所有分区信息

 

Disk /dev/sdb: 213 MB, 213909504 bytes

64 heads, 32 sectors/track, 204 cylinders, total 417792 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 identifier: 0x303d0abc

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048       22527       10240   83  Linux

1.4.3 创建扩展分区及逻辑分区

工作中 扩展分区的分区原则是:剩多少给多少

创建10MB的主分区 创建一个使用所有容量的扩展分区  创建两个50MB逻辑分区

[[email protected]-50 ~]# fdisk -cu /dev/sdb   进入fdisk 编辑分区

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x303d0abc.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content wont be recoverable.

 

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

Command (m for help): p  从上一步继续 创建两个逻辑分区  查看一下有的分区

 

Disk /dev/sdb: 213 MB, 213909504 bytes

64 heads, 32 sectors/track, 204 cylinders, total 417792 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 identifier: 0x303d0abc

 

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048       22527       10240   83  Linux

 

Command (m for help): n                    创建新的分区

Command action

   e   extended   扩展分区

   p   primary partition (1-4)

e                                          创建扩展分区分区

Partition number (1-4): 2                  选择分区号码

First sector (22528-417791, default 22528):

Using default value 22528

Last sector, +sectors or +size{K,M,G} (22528-417791, default 417791):

Using default value 417791

 

Command (m for help): n              创建新的分区

Command action

   l   logical (5 or over)   逻辑分区,创建完扩展分区后只能创建逻辑分区

   p   primary partition (1-4)

l                                  选择l  创建逻辑分区 有扩展分区后才能创建逻辑分区

First sector (24576-417791, default 24576):

Using default value 24576

Last sector, +sectors or +size{K,M,G} (24576-417791, default 417791): +50M   选择50M

 

Command (m for help): P              查看下所有的分区信息

 

Disk /dev/sdb: 213 MB, 213909504 bytes

64 heads, 32 sectors/track, 204 cylinders, total 417792 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 identifier: 0x303d0abc

创建成功  一个10M的主分区  两个逻辑分区  

如果要删除的话  d删除 删除扩展分区 其下的所有逻辑分区都会被删除

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048       22527       10240   83  Linux

/dev/sdb2           22528      417791      197632    5  Extended

/dev/sdb5           24576      126975       51200   83  Linux

/dev/sdb6          129024      231423       51200   83  Linux

1.5 fdisk分区及挂载

1.5.1 创建一个主分区

1.5.1.1  进入fdisk

[[email protected] ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0x0a515057.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content wont be recoverable.

警告 : 可以关闭dos的兼容模式,使用扇区作为分区的默认单位  -cu ↓

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

 

WARNING: DOS-compatible mode is deprecated. Its strongly recommended to

         switch off the mode (command c) and change display units to

         sectors (command u).

 

Command (m for help): p            查看分区信息

 

Disk /dev/sdb: 213 MB, 213909504 bytes

64 heads, 32 sectors/track, 204 cylinders

Units = cylinders of 2048 * 512 = 1048576 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0a515057

 

   Device Boot      Start         End      Blocks   Id  System

现在没有创建分区  所以为空

1.5.1.2  创建主分区

Command (m for help): n      创建新分区

Command action

   e   extended

   p   primary partition (1-4)

p                              创建主分区

Partition number (1-4): 1      分区号码设置为一

First cylinder (1-204, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-204, default 204):

Using default value 204

1.5.1.3  创建完保存退出

fdisk编辑完退出前记得保存  

Command (m for help): w           w保存退出   fdisk编辑完 退出前记得保存

The partition table has been altered!

 

Calling ioctl() to re-read partition table.

Syncing disks.

[[email protected]-50 ~]# fdisk -l 创建完成后 可以查看下

1.5.2 格式化文件系统

mkfs ==make filesystem即创建文件系统。

 [[email protected] ~]# partprobe /dev/sdb1   操作这一步 正常是不回任何提示的

[[email protected]-50 ~]# mkfs.ext4 /dev/sdb1

这一步会生成block和inode

使用mkfs.ext4  会报以下警告

This filesystem will be automatically checked every 25 mounts or

这个磁盘分区会被自动检查     每挂载25次或每隔180天 就会进行一次磁盘检查

180 days, whichever comes first.  Use tune2fs -c or -i to override.

关闭磁盘的自动检查                    使用tune2fs -c or -i可以关闭

-c 每挂载多少次进行一次磁盘检查 -c 0  关闭

-i 每隔多少天进行一次磁盘检查   -i 0  关闭       

1.5.3 关闭分区的自动检查

-c 每挂载多少次进行一次磁盘检查   -c 0 关闭

-i 每隔多少天进行一次磁盘检查     -i 0  关闭

[[email protected] ~]# tune2fs -c 0 -i 0 /dev/sdb1

tune2fs 1.41.12 (17-May-2010)

Setting maximal mount count to -1

Setting interval between checks to 0 seconds

1.5.4 挂载分区

挂载到/data  没有/data记得事先创建好

[[email protected] ~]# mkdir -p /data           创建挂载目录

[[email protected]-50 ~]# mount /dev/sdb1 /data/   挂载

[[email protected]-50 ~]# df -h     挂载后记得检查

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        19G  1.7G   16G  10% /

tmpfs           491M     0  491M   0% /dev/shm

/dev/sda1       190M   35M  146M  19% /boot

/dev/sdb1       194M  1.8M  182M   1% /data    已挂载

1.5.5 永久挂载

/etc/rc.local 开机自启动

追加到 /etc/fatab底部    /bin/mount /dev/sdb1 /data/

 

/etc/fatab 开机自动挂载

[[email protected] ~]# vim /etc/fstab

/dev/sdb1               /data                   ext4    defaults        0 0

1.6 创建swap

故障案例  java程序占用 大量内存  开始使用swap  swap 不足

增加swap

[[email protected] ~]# free -h

             total       used       free     shared    buffers     cached

Mem:          980M       275M       704M       236K        28M       132M

-/+ buffers/cache:       114M       866M

Swap:         767M         0B       767M  swap信息

1.6.1 创建一个文件 成为swap

dd创建  

/dev/zero   不断输出 零

/dev/null   黑洞

if       input file     从哪里获取数据 (输入文件)

of       output file    输出到哪里

bs       block size     每次复制多少文件

count                   复制多少次

创建一个100M的文件

[[email protected]-50 ~]# dd   if=/dev/zero     of=/tmp/100m     bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.441882 s, 237 MB/s

[[email protected]-50 ~]# ll -h /tmp/100m   检查

-rw-r--r-- 1 root root 100M Aug 15 11:58 /tmp/100m   创建成功

1.6.2 让这个文件成为swap

创建swap  让这个文件成为swap(格式化)

mkswap

[[email protected] ~]# mkswap /tmp/100m  

mkswap: /tmp/100m: warning: dont erase bootbits sectors

        on whole disk. Use -f to force.

Setting up swapspace version 1, size = 102396 KiB

no label, UUID=9ee16d10-5fab-495d-a5fd-697b74ca360e

[[email protected]-50 ~]# file /tmp/100m         file命令显示这个文件的类型

/tmp/100m: Linux/i386 swap file (new style) 1 (4K pages) size 25599 pages

1.6.3 激活swap分区

swapon -s 显示swap的组成情况

[[email protected] ~]# swapon /tmp/100m   挂载(激活)

[[email protected]-50 ~]# swapon -s

Filename                Type        Size    Used    Priority

/dev/sda2                               partition   786428  0   -1

/tmp/100m                               file        102396  0   -2

永久增加

/etc/rc.local

/sbin/swapon /tmp/100m

1.7 parted创建分区

1.7.1 parted的使用

parted 的使用  parted 还可以非交互式创建分区 

parted使用需谨慎  parted是实时保存的

parted /dev/sdc

 

print    显示分区信息

mktable  创建磁盘分区表 

         gpt 

         msdos(mbr)

mkpart   创建分区

rm       删除分区

q        退出不保存

 

[[email protected] ~]# parted /dev/sdc   使用parted编辑分区

GNU Parted 2.1

Using /dev/sdc

Welcome to GNU Parted! Type help to view a list of commands.

(parted) p                         p查看分区                                        

Error: /dev/sdc: unrecognised disk label   未识别                                        

(parted) mktable gpt               创建 gpt 磁盘分区表

(parted) p                         p查看分区                                          

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 214MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

 

Number  Start  End  Size  File system  Name  Flags

 

(parted) mkpart LH 0 10            创建 分区 分区名LH  从多少开始到多少结束                                       

Warning: The resulting partition is not properly aligned for best performance.

Ignore/Cancel? i                    忽略信息 i                                         

(parted) p                          p查看分区                                       

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 214MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  Flags

 1      17.4kB  10.0MB  9983kB               LH

 

(parted) mkpart LH  10 20             创建 分区 分区名LH  从多少开始到多少结束                                     

(parted) p                            p查看分区                                      

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 214MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  Flags

 1      17.4kB  10.0MB  9983kB               LH

 2      10.5MB  19.9MB  9437kB    

 

(parted) rm 2                      删除第二个分区                                         

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 214MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  Flags

 1      17.4kB  10.0MB  9983kB               LH

1.7.2 非交互式创建分区

parted  后面直接跟上内置的命令 就可以直接使用 实现非交互式创建

parted  /dev/sdc  mktable gpt

parted  /dev/sdc  mkpart primary 0 10 ignore

parted  /dev/sdc  mkpart primary 10 20

parted  /dev/sdc  p

[[email protected]-50 ~]# parted /dev/sdc p

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 214MB

Sector size (logical/physical): 512B/512B

Partition Table: gpt

 

Number  Start   End     Size    File system  Name  Flags

 1      17.4kB  10.0MB  9983kB               LH

1.8 未格式化出现的错误

对磁盘进行一些操作的时候可能会提示没有格式化磁盘,需要格式化。

[[email protected] ~]# tune2fs -c0 -i0 /dev/sdc

tune2fs 1.41.12 (17-May-2010)

tune2fs: Bad magic number in super-block while trying to open /dev/sdc

Couldnt find valid filesystem superblock.

没有找到可用的文件系统

以上是关于磁盘分区的方法的主要内容,如果未能解决你的问题,请参考以下文章

磁盘分区的方法

Linux 磁盘分区永久挂载创建LVM逻辑卷

如何调整磁盘分区大小

Windows无法安装到这个磁盘 选中的磁盘具有MBR分区表解决方法

磁盘从已经使用的磁盘上划分一块新的分区 方法

win10系统删多余的磁盘分区的方法图文教程