day28 磁盘管理下部

第1章 如何查看内存使用情况

 [root@zs ~]# free -h

                 total      used       free       shared       buffers     cached

Mem:          980M      914M      66M       232K        61M       680M

-/+ buffers/cache:      172M        808M

         真正使用的     内存        剩余

                               

Swap:         767M         0B         767M

 

 

Linux把你使用过的命令或文件  替你缓存(buffer cache)起来,提高下次使用速度

写buffer

读cache

(不要手动清空buffer和cache)会自动覆盖

第2章 磁盘分区

Linux启动流程

1.   开机自检  (内存cpu硬件是否有问题【硬件检查】

2.   MBR引导

3.   GRUB菜单

4.   加载内核

5.   运行init进程 (Linux系统里面的第一个进程

6.   读取运行级别(/etc/inittab配置文件

7.   执行/etc/rc.d/rc.sysinit脚本(系统的初始化脚本【设置主机名 配置IP地址】)

8.   执行/etc/rc.d脚本 (3级别)(根据运行级别 启动对应服务【开机自启动】)

9.   启动mingetty进程

10. 进入登陆界面

磁盘的引导扇区               0磁头 0磁道 1扇区

MBR引导                      0头0道1扇区446字节

MBR(Master Boot Record)       主引导记录  引导系统启动

 DPT(Disk Partition Table)  磁盘分区表 记录着磁盘分区从哪里开始到哪里结束  

2.1 主分区:(primary 每个分区占用16字节的分区表

       image.png

 

2.2 扩展分区:(extended)无法直接使用

image.png

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

2.4 磁盘分区表:

image.png

 

 

主分区    primary   一般一定要有  用于存放数据

 

扩展分区  extend    最多1  无法直接使用

 

逻辑分区  logical    存放数据

2.5 磁盘分区的命名规则:

2.5.1 磁盘分区 

[root@zs ~]# fdisk -l |grep sd[a-c]

Disk /dev/sda: 21.5 GB, 21474836480 bytes

/dev/sda1   *           1          26      204800   83  Linux

/dev/sda2              26         124      786432   82  Linux swap / Solaris

/dev/sda3             124        2611    19979264   83  Linux

Disk /dev/sdb: 213 MB, 213909504 bytes

Disk /dev/sdc: 20 MB, 20971520 bytes

fdisk命令用于观察硬盘实体使用情况,也可对硬盘分区。它采用传统的问答式界面,而非类似DOS fdisk互动式操作界面,因此在使用上较为不便,但功能却丝毫不打折扣。

2.6 fdisk

fdisk: 创建分区

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

-c   关闭DOS兼容模式                        

fdisk –cu /dev/sdb

fdisk 内部命令

m   显示帮助

p    显示所有分区信息

d     删除分区

w     保存并退出

q      退出

创建一个10MB主分区

fdisk -cu  /dev/sdb

Command (m for help): n
Command action  #分区类型 
   e   extended           #扩展分区
   p   primary partition (1-4)   #主分区 
p                                         
Partition number (1-4): #分区号码


First sector (2048-417791, default 2048): 
从哪里开始(回车 使用默认)

Last sector, +sectors or +size{K,M,G} (2048-417791, default 417791): +10M
                                                                             #大小
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: 0x8dde1fa5
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       22527       10240   83  Linux

【练习】

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

[root@zs ~]# fdisk -cu /dev/sdb   (创建分区)

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

Building a new DOS disklabel with disk identifier 0xb42cefa5.

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

After that, of course, the previous content won't be recoverable.

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

(警告)

Command (m for help): n    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   大小

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: 0xb42cefa5

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1            2048       22527       10240   83  Linux

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

Command action

   e   extended                     扩展分区

   p   primary partition (1-4)          主分区

e              创建一个扩展分区

Partition number (1-4):

Value out of range.

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    n创建新的分区

Command action

   l   logical (5 or over)       逻辑分区

   p   primary partition (1-4)  主分区

l                               创建逻辑分区         

First sector (24576-417791, default 24576):

Using default value 24576

Last sector, +sectors or +size{K,M,G} (24576-417791, default 417791): +50M         逻辑分区大小

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

Command action

   l   logical (5 or over)

   p   primary partition (1-4)

l                                创建逻辑分区     

First sector (129024-417791, default 129024):

Using default value 129024

Last sector, +sectors or +size{K,M,G} (129024-417791, default 417791): +50M   逻辑分区大小

   

Command (m for help): w       保存并退出

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

 [root@zs ~]# fdisk -cu /dev/sdb

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: 0xb42cefa5

   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

第4章 增加硬盘200MB,硬盘创建一个分区挂载到/data目录

4.1  1个里程碑-创建分区

fdisk -cu  /dev/sdb

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: 0x8dde1fa5

   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 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

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: 0x8dde1fa5

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         204      208880   83  Linux

Command (m for help): w 保存并退出

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@oldboyedu50-lnb ~]# fdisk -l /dev/sdb     查看

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: 0x8dde1fa5

   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1         204      208880   83  Linux

4.2 2个里程碑-通知系统sdb磁盘分区表变化

partprobe /dev/sdb

4.3 3个里程碑-创建文件系统(格式化)

            make filesystem

            mkfs

            #对每个房间装修(磁盘分区)

mkfs.ext4  /dev/sdb1

4.4 4个里程碑-关闭磁盘自动检查

This filesystem will be automatically checked every 38 mounts or

这个磁盘分区会被自动检查(没挂载38次或每隔180天)

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

自己创建的磁盘分区关闭磁盘检查.

[root@oldboyedu50-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

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

2.        -i  0  关闭 每隔180天进行一次磁盘检查

4.5 5个里程碑-挂载

[root@oldboyedu50-lnb ~]# mkdir -p /data                 创建目录/data

[root@oldboyedu50-lnb ~]# mount  /dev/sdb1  /data/       挂载/dev/sdb1 到/data

[root@oldboyedu50-lnb ~]# df –h                         查看挂载情况

Filesystem      Size  Used Avail Use% Mounted on

/dev/sda3        19G  1.5G   17G   9% /

tmpfs           931M     0  931M   0% /dev/shm

/dev/sda1       190M   40M  141M  22% /boot

/dev/sdb1       194M  1.8M  182M   1% /data

4.6 6个里程碑-永久挂载

4.6.1 #方法1

vim   /etc/rc.local

写入  /bin/mount  /dev/sdb1  /data

4.6.2 #方法2

vim   /etc/fstab  开机自动挂载         

UUID=cf634253-6c41-4771-87b7-e86afb9284a7   /                 ext4          defaults        1                 1

UUID=8519938a-dccb-4eb5-bbbc-4fd22f9f99fe   /boot             ext4          defaults        1                 2

UUID=f70549a5-ec74-4cd1-99ba-49eb175e712d   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

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

#/dev/cdrom                                  /mnt              iso9660       defaults        0                 0

/dev/sdb1                                   /data             ext4          defaults        0                 0 

image.png

3.        磁盘使用小结:

1.分区

2.格式化

3.挂载

第一个里程碑-创建分区并通知系统磁盘的分区表变化

第二个里程碑-创建文件系统-关闭分区的自动检查功能

第三个里程碑-挂载及永久挂载

第5章 故障案例: java程序占用大量内存,开始使用swapswap不足

增加swap

5.1 创建一个文件成为swap

[root@oldboyedu50-lnb ~]# free -h    

             total       used       free     shared    buffers     cached

Mem:          1.8G       158M       1.7G       240K        11M        51M

-/+ buffers/cache:        95M       1.7G

Swap:         767M         0B       767M

5.1.1 创建一个100M的文件

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

                              (input file)       (output file  )   (block size

                           从哪里获取数据         输出到哪里      每次复制多少文件       复制多少次

/dev/zero  不断输出

/dev/null  黑洞

[root@oldboyedu50-lnb ~]# file /tmp/100m

/tmp/100m: data

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

[root@oldboyedu50-lnb ~]# mkswap /tmp/100m

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=531f48e2-be07-4f24-86e5-dfe9ed549b16

[root@oldboyedu50-lnb ~]# file /tmp/100m

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

5.1.3  激活swap分区

swapon /tmp/100m

[root@oldboyedu50-lnb ~]# swapon /tmp/100m

[root@oldboyedu50-lnb ~]# free  -h

             total       used       free     shared    buffers     cached

Mem:          1.8G       264M       1.6G       240K        11M       153M

-/+ buffers/cache:        98M       1.7G

Swap:         867M         0B       867M

swapon -s  显示swap的组成情况(磁盘分区 和文件)

 #fdisk -l 

5.1.4  永久增加

Vim

/etc/rc.local

/etc/fstab

#/tmp/100m               swap                    swap    defaults        0 0

4.        增加swap小结:

1.创建一个文件

2.文件--->swap

3.激活 和永久生效

第6章 fdisk   vs   parted

fdisk   支持2TB以内的磁盘       只支持MBR磁盘分区表

parted  支持2TB以上的磁盘       MBR(主分区最多4)  GPT(无限   接近100) 主分区  扩展区   逻辑分区

6.1 parted

print

显示分区信息


mktable

mklabel

gpt

msdos(mbr)

创建磁盘分区表

mkpart

创建分区


rm

删除分区


q

退出不保存


6.1.1 #创建分区表

parted /dev/sdc

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

(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

6.2 #创建分区

(parted) mkpart  primary  0  10              创建分区primary  大小为10MB

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: 214MB

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

Partition Table: gpt

Number  Start   End     Size    File system  Name     Flags

 1      17.4kB  10.0MB  9983kB               primary

6.3 非交互式创建分区

 parted  /dev/sdc  p

 parted  /dev/sdc  mktable gpt

 parted  /dev/sdc  mkpart primary 0 10 ignore

 parted  /dev/sdc  mkpart primary 10 20

 parted  /dev/sdc  p

总结:

0.   磁盘分区表   主分区  扩展分区   逻辑分区

1.   磁盘分区命名规则

2.   磁盘分区过程  

3.   分区格式化挂载

     增加swap

4.   如何查看内存使用情况


猜你喜欢

转载自blog.51cto.com/13859679/2161987