您的位置:首页 > 其它

Day 28 磁盘管理下部

2018-08-15 21:18 609 查看
Day 28 磁盘管理下部

1.1 如何让系统更安全

[root@oldboyedu50-lnb ~]# md5sum oldboy.txt 检查文件是否变化
890b185727556f1be31d7fe5ee5ce4dc oldboy.txt
[root@oldboyedu50-lnb ~]# sha512sum oldboy.txt 加密更好
c9a326ffb217c4dc7f72ccf02aba9abf9ec94ca40aa47d848f57741e313a7df52b80f8cca9130acc5930815a1728d93bd781b29d4598eb5cbcaf55ef6e2a7d98 oldboy.txt

1.2 如何查看内存使用情况

[root@oldboyedu50-lnb ~]# free -h
total used free shared buffers cached
Mem: 1.8G 1.6G 195M 236K 106M 1.3G
-buffer +buffer
-cache +cache
-/+ buffers/cache: 189M 1.6G
真正的
使用的内存 剩余
Swap: 767M 0B 767M

1.3 Linux的特点

1. 用过的查看的数据,文件,临时存放的内存中方便以后使用2. 提高下次使用速度3. Linux 一些数据放在buffer或cache中Buffer 内存中的一个区域 写入到内存中的数据写缓冲区
Cache内存中的一个区域 给别人读取的数据 读缓存区

1.4 磁盘分区

1.4.1 Linux启动流程:

1. 开机自检 BIOS(Basic Input/Output System)
2. MBR引导
3. GRUB菜单
4. 加载内核
5. 运行init进程 第1个进程
6. 读取运行级别 /etc/inittab
7. /etc/rc.sysinit 系统初始化
8. /etc/rc3.d 根据运行级别 启动对应服务(开机自启动)
9. mingetty 登录页面

磁盘的引导扇区 0磁头 0磁道 1扇区 MBR引导 0头0道1扇区前446字节 MBR (Master Boot Record) 主引导记录 引导系统启动DPT (Disk Partition Table) 磁盘分区表 记录着磁盘分区从哪里开始到哪里结束





主分区(primary) 每个分区占用16个字节的分区表扩展分区(extended) 无法直接使用的逻辑分区(logical) 存放数据
主分区 primary
一般一定要有
存放数据
扩展分区 extend
最多1个
无法直接使用
逻辑分区 logical
存放数据

1.5 磁盘分区的命名规则:



1.5.1 磁盘分区

[root@oldboyedu50-lnb ~]# fdisk -l |grep sd[a-c]: 查看我们需要的磁盘信息
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdc: 213 MB, 213909504 bytes
Disk /dev/sdb: 213 MB, 213909504 bytes

1.6 fdisk 创建分区

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

1.7 fdisk内部命令

m 显示帮助
n new 创建分区
p 显示所有分区信息
d 删除分区
w 保存并退出
q 退出不保存

1.7.1 创建一个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

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

[root@oldboyedu50-lnb ~]# fdisk -cu /dev/sdb Command (m for help): pDisk /dev/sdb: 213 MB, 213909504 bytes64 heads, 32 sectors/track, 204 cylinders, total 417792 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x8dde1fa5 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): 2First sector (22528-417791, default 22528): 默认Using default value 22528Last sector, +sectors or +size{K,M,G} (22528-417791, default 417791): 默认Using default value 417791 Command (m for help): p 打印信息 Disk /dev/sdb: 213 MB, 213909504 bytes64 heads, 32 sectors/track, 204 cylinders, total 417792 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytesI/O size (minimum/optimal): 512 bytes / 512 bytesDisk identifier: 0x8dde1fa5
Device Boot Start End Blocks Id System
/dev/sdb1 2048 22527 10240 83 Linux
/dev/sdb2 22528 417791 197632 5 Extended

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

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

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

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

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

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.7.3 增加硬盘200MB,硬盘创建一个分区挂载到/data目录

第1个里程碑-创建分区
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

第2个里程碑-通知系统sdb磁盘分区表变化
Command (m for help): partprode /dev/sdb

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

Device Boot Start End Blocks Id System
/dev/sdb1 32 417791 208880 83 Linux
第3个里程碑-创建文件系统(格式化)
make filesystem
mkfs
#对每个房间装修(磁盘分区)
[root@CJY ~]# mkfs.ext4 /dev/sdb1
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
52416 inodes, 208880 blocks
10444 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
26 block groups
8192 blocks per group, 8192 fragments per group
2016 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801

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

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

第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

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

第5个里程碑-挂载
[root@oldboyedu50-lnb ~]# mkdir -p /data
[root@oldboyedu50-lnb ~]# mount /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

第6个里程碑-永久挂载
#方法1
/etc/rc.local 开机自启动
vim编辑模式
/etc/fstab
/dev/sdb1 /data ext4 defaults 0 0



#方法2
/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

1.7.4 磁盘使用小结:

1.分区
2.格式化
3.挂载
第一个里程碑-创建分区并通知系统磁盘的分区表变化
第二个里程碑-创建文件系统-关闭分区的自动检查功能
第三个里程碑-挂载及永久挂载

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

增加swap
创建一个文件成为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
1.创建一个100M的文件
[root@oldboyedu50-lnb ~]# dd if=/dev/zero of=/tmp/100m bs=1M count=100
input output block
file file size
从哪里获取数据 输出到哪里 每次复制多少文件 复制多少次
/dev/zero 不断输出 零
/dev/null 黑洞
[root@oldboyedu50-lnb ~]# file /tmp/100m 显示信息
/tmp/100m: data
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

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
4.永久增加
/etc/rc.local
/etc/fstab

#/tmp/100m swap swap defaults 0 0

1.7.6 增加swap小结:

1.创建一个文件
2.文件--->swap
3.激活 和永久生效
fdisk vs partedfdisk 支持2TB以内的磁盘 只支持MBR磁盘分区表parted 支持2TB以上的磁盘 MBR(主分区最多4个) GPT(无限 接近100) 主分区 扩展分区 逻辑分区

1.8 parted /dev/sdc 分区工具

1.9 内置命令

print 显示分区信息mktable mklabel 创建磁盘分区表 gpt 新的分区表 msdos(mbr) mbr分区表 最大支持2TBmkpart 创建分区 rm 删除分区 q 退出不保存

1.9.1 #创建分区表

(parted) mktable 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

1.9.2 #创建分区

(parted) mkpart primary 0 10
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

1.10 非交互式创建分区

parted /dev/sdc p 显示分区表信息
parted /dev/sdc mktable gpt 创建分区表格式为gpt
parted /dev/sdc mkpart primary 0 10 ignore 创建分区 分区大小为10M且忽略提示
parted /dev/sdc mkpart primary 10 20 创建分区 分区大小为10M
parted /dev/sdc p 显示分区表信息

1.11 总结:

1.11.1 磁盘分区表 主分区 扩展分区 逻辑分区

1.11.2 磁盘分区命名规则

1.11.3 磁盘分区过程

1.11.4 分区格式化挂载

增加swap

1.11.5 如何查看内存使用情况

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Day 28 磁盘