第1章 磁盘分区

1.1 磁盘分区表:

mbr 引导系统启动  主引导记录       0磁头  0磁道 1扇区的前446字节

 图片1.png

一个磁盘分区占分区表的16字节

图片2.png 

 

主分区(primary):  一般一定要有   存放数据

扩展分区(extend): 最多一个    无法直接使用

逻辑分区(logical):存放数据

主分区+扩展分区  一共  最多四个

1.2 硬盘分区的设备名:

硬盘:     SAS/SATA/SCSI    /dev/sd?

         第一块SAS        /dev/sda

         第三块SATA       /dev/sdc

分区:    主分区和扩展分区   1-4

         逻辑分区           5开始

      1块sas硬盘的第一个主分区         /dev/sda1
2块sata硬盘的第2个主分区        /dev/sdb2  
3块sata硬盘的第1个逻辑分区       /dev/sdc5

 

1.3 磁盘格式化

1. fdisk                 硬盘容量小于2T,只支持mbr分区表(应为mbr分区表最大支持2T)

2. proted                用于给大小超过2T的磁盘创建文件系统   基于gpt分区表

 

1.3.1 fdisk:  硬盘容量小于2T

实例1-1 创建一个40M主分区 40m逻辑分区

1.参数讲解

fdisk -cu /dev/sdb       

-u fdisk创建默认按柱面创建,, -u,按扇区创建 

n   创建分区

d   删除分区

p   print 显示分区县信息

q   退出不保存

w   保存并退出

 

扩展分区  剩多少给多少    默认开始 默认结束

2.fdisk 创建分区

创建一个100M分区(使用全部磁盘空间),并挂载到/mnt

添加两块硬盘

[root@oldboy-gao ~]# fdisk -l |grep 'sd[a-c]:'             查看系统中所有磁盘及分区

Disk /dev/sda: 10.7 GB, 10737418240 bytes

Disk /dev/sdb: 106 MB, 106954752 bytes

Disk /dev/sdc: 106 MB, 106954752 bytes

#1.创建分区 

[root@oldboy-gao ~]#fdisk  /dev/sdb                        给/dev/sdb分区
Command (m for help): p                         显示分区

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 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: 0x067df53e

Device Boot      Start         End      Blocks   Id  System

Command (m for help): n                                  创建分区
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1                                 分区号
First sector (2048-208895, default 2048):                开始扇区 
Using default value 2048           
Last sector, +sectors or +size{K,M,G} (2048-208895, default 208895):  结束扇区 
Using default value 208895

Command (m for help): p

Disk /dev/sdb: 106 MB, 106954752 bytes
64 heads, 32 sectors/track, 102 cylinders, total 208896 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: 0x067df53e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      208895      103424   83  Linux

Command (m for help): w                                 保存退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
#2.通知系统/dev/sdb分区表变化了
partprobe  /dev/sdb
#3.格式化 创建文件系统
[root@oldboyedu43-lnb ~]# mkfs.ext4 /dev/sdb1             创建ext4格式文件系统
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25896 inodes, 103424 blocks
5171 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
13 block groups
8192 blocks per group, 8192 fragments per group
1992 inodes per group
Superblock backups stored on blocks: 
8193, 24577, 40961, 57345, 73729

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
                                          
#4.关闭自动磁盘检查功能             ↓

图片3.png

[root@oldboyedu43-lnb ~]# 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

-c 关闭每挂载N次的时候进行磁盘检查
-i 关闭每隔一段时间的磁盘检查

#5.挂载到/mnt
[root@oldboyedu43-lnb ~]# df -h                 先查看一下是否有人挂载到/mnt上
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  3.4G  5.0G  41% /
tmpfs           931M     0  931M   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
[root@oldboyedu43-lnb ~]# mount /dev/sdb1  /mnt/               临时挂载
[root@oldboyedu43-lnb ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       8.8G  3.4G  5.0G  41% /
tmpfs           931M     0  931M   0% /dev/shm
/dev/sda1       190M   40M  141M  22% /boot
/dev/sdb1        94M  1.6M   88M   2% /mnt
[root@oldboyedu43-lnb ~]# touch /mnt/oldboy.txt
[root@oldboyedu43-lnb ~]# ls -l /mnt/
total 12
drwx------ 2 root root 12288 Jan  9 10:25 lost+found
-rw-r--r-- 1 root root     0 Jan  9 10:32 oldboy.txt

 

1.3.2 挂载永久生效

  /dev/sdb1 永久挂载到/mnt

1) /etc/rc.local

 /bin/mount  /dev/sdb1  /mnt

2)/etc/fstab 开机自动挂载配置文件

UUID=e9d0cb5d-fa9d-42e5-8eb7-1bc269194fd1 /                   ext4    defaults        1 1

UUID=7aebd13d-f378-4ac0-a6cd-3a018cf083ab /boot                ext4    defaults        1 2

第一列        第二列      ext4             defaults         1                 1

设备名字      挂载点     文件系统类型      挂载参数     是否dump备份    是否进行磁盘检查(自己创建的禁止)

 

/dev/adb1    /mnt         ext4    defaults    0  0

 

小结:创建一个100M分区,把它挂载到/mnt上面

1.创建分区并通知系统磁盘的分区表变化

2.创建文件系统--关闭分区的自动检查功能

3.挂载及永久挂载

 图片4.png

特殊目录,相当于内存

1.3.3 parted    用于给大小超过2T的磁盘创建文件系统   基于gpt分区表

 

gpt 格式分区表 主分区无限(相当于)  支持更大的硬盘

mklabel,mktable LABEL-TYPE     创建磁盘分区表

mbr(msdos)

gpt

h                                        帮助信息

mkpart PART-TYPE [FS-TYPE] START END    创建分区

print                                      显示分区信息

quit                                      退出不保存

rm NUMBER                             删除一个分区

1.3.4 特点

 默认单位MB

创建分区实时生效

支持tab

[root@oldboy-gao ~]# parted /dev/sdc                 parted  给/dev/sdc创建分区

GNU Parted 2.1

Using /dev/sdc

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

(parted)                                                                  

(parted) p                                         显示分区

Error: /dev/sdc: unrecognised disk label                                  

(parted) #               没有分区表  

 

 (parted) mklabel gpt                             创建gpt分区表

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 107MB

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

Partition Table: gpt

 

Number  Start  End  Size  File system  Name  Flags

                                                   

(parted) mkpart primary 0 20M                      创建分区  

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

Ignore/Cancel? I                                                          

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 107MB

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

Partition Table: gpt

 

Number  Start   End     Size    File system  Name     Flags

 1      17.4kB  20.0MB  20.0MB               primary

 

(parted) rm 2                                                      删除

(parted) p                                                                

Model: VMware, VMware Virtual S (scsi)

Disk /dev/sdc: 107MB

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

Partition Table: gpt

 

Number  Start   End     Size    File system  Name     Flags

 1      17.4kB  20.0MB  20.0MB               primary


fdiskparted区别

fdisk只支持mbr       mbr支持小于2T的硬盘

parted支持多种分区表  gpt支持大于2T的硬盘


1.1 故障:Java环境内存不够用,大量占用swap

思想:临时增加swap          创建一个文件,让它作为swap

解决:

 

 dd if=/dev/zero         of=/tmp/100M     bs=1M       count=1

  从那里获取数据      到哪里         大小/个           个数

 

1.创建一个文件

[root@oldboy-gao ~]# dd if=/dev/zero of=/tmp/100M   bs=1M  count=100

[root@oldboy-gao ~]# ls /tmp/100M

/tmp/100M

[root@oldboy-gao ~]# file /tmp/100M

/tmp/100M: data

2. 让这个文件成为swap

 makeswap  /tmp/100M

[root@oldboy-gao ~]# mkswap /tmp/100M                          创建swap分区

mkswap: /tmp/100M: warning: don't erase bootbits sectors

        on whole disk. Use -f to force.

Setting up swapspace version 1, size = 102396 KiB

no label, UUID=b570b13c-8356-4bec-95e5-588b1cf98783

[root@oldboy-gao ~]# file /tmp/100M

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

查看swap大小

[root@oldboy-gao ~]# free -h

             total       used       free     shared    buffers     cached

Mem:          1.8G       325M       1.5G       244K        11M       164M

-/+ buffers/cache:       149M       1.7G

Swap:         767M         0B       767M

 

3. swap文件加入到系统swap中  (临时)

 [root@oldboy-gao ~]# swapon /tmp/100M

[root@oldboy-gao ~]# free -h

             total       used       free     shared    buffers     cached

Mem:          1.8G       325M       1.5G       244K        11M       164M

-/+ buffers/cache:       149M       1.7G

Swap:         867M         0B       867M

 

[root@oldboy-gao ~]# swapon -s                    查看系统swap有几部分组成

Filename    Type  Size Used Priority

/dev/sda2                               partition 786428 0 -1

/tmp/100M                               file  102396 0 -2

 

永久生效(尤其云服务器)

1. /etc/rc.local

/sbin/swapon  /tmp/100M

2. /etc/fstab

图片5.png