思想
fdisk 分区
dd 虚拟文件系统
if=/dev/sda 来源
of=/dev/sdc生成文件系统
bs=512 block大小
count=10240 块个数
修改分区 dd if=/dev/sda of=/dev/sdc bs=512 count=10240
ls -l /dev/sdc
file /dev/sdc
做完指定分区 cat /proc/partitions 查看分区信息
df -h
partprobe /dev/sdb 指定分区分区完 要执行 partprobe
t 调整分区类型
修改分区 fdisk /dev/sdb 进分区
Command (m for help): t 修改分区
Partition number (1-7, default 7): 7 7分区
Hex code (type L to list all codes): 8e Linux LVM逻辑卷
如何用一条fdisk命令回车完成上述操作
parted GNU磁盘分区
需求:RAID5大小6T,已经装了系统了, 额外添加4块2T盘
现有一个做了RAID5的硬盘,要求分三个区,(6T装系统装不了,现在是装了系统)
硬盘总分区大小: 6.2T
/data0 4.8T
/data1 1T
4G (无需格式化,作DRBD+Hearbeat+MySQL高可用集群)
例 parted /dev/sdb mklabel gpt #<==修改分区格式为gpt。中间是主分区名称
parted /dev/sdb mkpart primary 0 4800000 #<==创建一个4.8T主分区
parted /dev/sdb mkpart primary 4800001 5800001 #<==创建一个1T主分区
parted /dev/sdb mkpart primary 5800002 5804098 #<==创建一个4G主分区
parted /dev/sdb p
问题需求:刚买的服务器 4块2T 刚买,要做RAID5,装系统怎么搞定?
方法1:Raid制作视频,Raid里可以支持RAID5后,6T,允许你把6T分成虚拟磁盘。
200G分成第一个虚拟磁盘剩下不分留着装系统后(parted)。
方法2:装系统过程中有这个功能,系统镜像支持GPT格式分区,很隐蔽。
方法3:引导工具,进入然后用parted分区。
获得使用的磁盘过程====买房入住生活的过程
磁盘: 房子
RAID: 多套房子打通
分区: 隔断/几居室/卧室/卫生间/厨房
==============================
文件系统:装修风格/中式/欧式/美式
格式化过程: 装修的过程
挂载: 开门、开窗住人使用
磁盘管理:生活中收拾屋子,打扫卫生,修修补补。
满足女生本能的需求,比满足意识层的需求更重要。
分区知识:
(1)什么是分区,为什么要分区?
(2)磁盘和分区在Linux里的命名。
(3)磁盘分区类型和特点:
(4)磁盘分区工作原理:
(5)磁盘分区实战
(6)生产场景分区方案:4种。参考前面课程。
文件系统:什么是 计算机存储和组织数据的方法或者机制。
1:为什么需要文件系统 :
磁盘、物理介质、磁粒子物理元素,硬件需要软件驱动使用,磁盘需要文件系统驱动,文件系统实瑞通过帮助磁盘管理规划、存取数据
2:文件系统有哪些种类:
windows:NTFS/fat32/msdos
linux:ext2/ext3(C5)/ext4(C6)/Xfs(C7)、btrfs
3:创建文件系统实践
[root@oldboyedu ~]# parted /dev/sdb #交互式开始分区
GNU Parted 3.1
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) help
(parted) mklabel gpt #修改分区格式为gpt
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? Yes
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt #修改结果
(parted) mkpart primary 0 480 #创建第一个主分区480M。
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? Ignore #忽略提示。
(parted) mkpart primary 481 580 #创建第二个主分区100M。
Warning: You requested a partition from 481MB to 580MB (sectors 939453..1132812).
The closest location we can manage is 481MB to 481MB (sectors 940031..940031).
Is this still acceptable to you?
Yes/No? Y
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? I #忽略提示。
(parted) mkpart logic 581 600 #创建一个20M逻辑分区。
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:
Number Start End Size File system Name Flags
1 17.4kB 480MB 480MB primary
3 481MB 481MB 512B primary
2 481MB 580MB 98.6MB primary
4 581MB 600MB 18.9MB logic
(parted) rm 4 #删除
(parted) p
分区被parted搞了。
修改分区格式:
(parted) mklabel msdos
Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
Yes/No? Y
(parted) p
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 1074MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:
创建分区:
[root@oldboyedu ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-2097151, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +100M
Partition 1 of type Linux and of size 100 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 label type: dos
Disk identifier: 0x000006b6
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2):
First sector (206848-2097151, default 206848):
Using default value 206848
Last sector, +sectors or +size{K,M,G} (206848-2097151, default 2097151): +100M
Partition 2 of type Linux and of size 100 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 label type: dos
Disk identifier: 0x000006b6
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 411647 102400 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@oldboyedu ~]# ls -l /dev/sdb*
brw-rw---- 1 root disk 8, 16 Mar 29 11:31 /dev/sdb
brw-rw---- 1 root disk 8, 17 Mar 29 11:31 /dev/sdb1
brw-rw---- 1 root disk 8, 18 Mar 29 11:31 /dev/sdb2
[root@oldboyedu ~]# mkfs -t ext4 /dev/sdb1 #格式化ext4文件系统 mkfs.ext4
其实关键就是生成一定数量的Inode和Block。
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
25688 inodes, 102400 blocks
5120 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33685504
13 block groups
8192 blocks per group, 8192 fragments per group
1976 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
挂载: 开门、开窗住人使用
[root@oldboyedu ~]# mount /dev/sdb1 /mnt #临时挂载到/mnt
[root@oldboyedu ~]# df -h #查看挂载结果
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.9G 18G 10% /
devtmpfs 980M 5.0M 975M 1% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 18M 973M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 199M 0 199M 0% /run/user/0
tmpfs 199M 0 199M 0% /run/user/1000
/dev/sdb1 93M 1.6M 85M 2% /mnt #<====已挂载。
[root@oldboyedu ~]# cat /proc/mounts #查看挂载结果
rootfs / rootfs rw 0 0
sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
configfs /sys/kernel/config configfs rw,relatime 0 0
/dev/sda3 / xfs rw,relatime,attr2,inode64,noquota 0 0
systemd-1 /proc/sys/fs/binfmt_misc autofs rw,relatime,fd=32,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=19277 0 0
hugetlbfs /dev/hugepages hugetlbfs rw,relatime 0 0
debugfs /sys/kernel/debug debugfs rw,relatime 0 0
mqueue /dev/mqueue mqueue rw,relatime 0 0
/dev/sda1 /boot xfs rw,relatime,attr2,inode64,noquota 0 0
tmpfs /run/user/0 tmpfs rw,nosuid,nodev,relatime,size=202812k,mode=700 0 0
tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=202812k,mode=700,uid=1000,gid=1000 0 0
/dev/sdb1 /mnt ext4 rw,relatime,data=ordered 0 0 #<==已挂载。
[root@oldboyedu ~]# touch /mnt/oldboy #<==测试。
[root@oldboyedu ~]# ls /mnt
lost+found oldboy
[root@oldboyedu /mnt]# umount /mnt 删除挂载
umount: /mnt: target is busy.
(In some cases useful info about processes that use
the device is found by lsof(8) or fuser(1))
[root@oldboyedu /mnt]# pwd
/mnt
You have new mail in /var/spool/mail/root
[root@oldboyedu /mnt]# umount -lf /mnt #<==强制卸载
[root@oldboyedu /mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.9G 18G 10% /
devtmpfs 980M 5.0M 975M 1% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 18M 973M 2% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 199M 0 199M 0% /run/user/0
tmpfs 199M 0 199M 0% /run/user/1000
[root@oldboyedu ~]# mount /dev/sdb2 /opt #没有格式化没法挂载
mount: /dev/sdb2 is write-protected, mounting read-only
mount: unknown filesystem type '(null)'
[root@oldboyedu ~]# mkfs.xfs /dev/sdb2 #格式化xfs文件系统
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=6400 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=25600, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@oldboyedu ~]# mount -t xfs /dev/sdb2 /opt
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# df -h|grep opt
/dev/sdb2 97M 5.3M 92M 6% /opt
[root@oldboyedu ~]# touch /opt/oldgirl
[root@oldboyedu ~]# ls /opt
oldgirl
4:文件系统原理(ext文件系统)
如何开机自动挂载
如何开机自动挂载?
/etc/fstab 开机自动挂载
几列? 6列
[root@oldboyedu ~]# cat /etc/fstab
UUID=3a3a295f-88f8-456d-94dc-1a3eeb517c02 / xfs defaults 0 0
UUID=fd2e0ca7-32be-425f-86a2-85c02b9ec5ea /boot xfs defaults 0 0
UUID=79a3924b-739e-48dc-ab0c-0444b9ac6591 swap swap defaults 0 0
设备 挂载点 文件系统类型 默认挂载选项 是否备份 是否开机磁盘检查
/dev/sdb2 /opt xfs defaults 0 0
mount -t xfs /dev/sdb2 /opt
[root@oldboyedu ~]# blkid
/dev/sdb1: UUID="a45b004f-2322-4dc4-a281-2a212dd2ab79" TYPE="ext4"
/dev/sdb2: UUID="7daf8142-b641-4b60-a287-4e08dfa18611" TYPE="xfs"
/dev/sda1: UUID="fd2e0ca7-32be-425f-86a2-85c02b9ec5ea" TYPE="xfs"
/dev/sda2: UUID="79a3924b-739e-48dc-ab0c-0444b9ac6591" TYPE="swap"
/dev/sda3: UUID="3a3a295f-88f8-456d-94dc-1a3eeb517c02" TYPE="xfs"
[root@oldboyedu ~]# tail -1 /etc/fstab
/dev/sdb2 /opt xfs defaults 0 0
mount -a 可以将fstab里的信息挂载。
放入/etc/rc.local 实现自动挂载 但不推荐。
/sbin/mount -t xfs /dev/sdb2 /opt
查看:
[root@oldboyedu ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 19G 1.9G 18G 10% /
devtmpfs 980M 0 980M 0% /dev
tmpfs 991M 0 991M 0% /dev/shm
tmpfs 991M 9.6M 981M 1% /run
tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/sdb2 97M 5.3M 92M 6% /opt
/dev/sda1 253M 136M 118M 54% /boot
tmpfs 199M 0 199M 0% /run/user/0
tmpfs 199M 0 199M 0% /run/user/1000
[root@oldboyedu ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda3 9960960 74572 9886388 1% /
devtmpfs 250820 390 250430 1% /dev
tmpfs 253514 1 253513 1% /dev/shm
tmpfs 253514 724 252790 1% /run
tmpfs 253514 16 253498 1% /sys/fs/cgroup
/dev/sdb2 51200 4 51196 1% /opt
/dev/sda1 131072 332 130740 1% /boot
tmpfs 253514 1 253513 1% /run/user/0
tmpfs 253514 1 253513 1% /run/user/1000
[root@oldboyedu ~]# blkid
/dev/sdb1: UUID="a45b004f-2322-4dc4-a281-2a212dd2ab79" TYPE="ext4"
/dev/sdb2: UUID="7daf8142-b641-4b60-a287-4e08dfa18611" TYPE="xfs"
/dev/sda1: UUID="fd2e0ca7-32be-425f-86a2-85c02b9ec5ea" TYPE="xfs"
/dev/sda2: UUID="79a3924b-739e-48dc-ab0c-0444b9ac6591" TYPE="swap"
/dev/sda3: UUID="3a3a295f-88f8-456d-94dc-1a3eeb517c02" TYPE="xfs"
查看文件系统内部细节:
[root@oldboyedu ~]# dumpe2fs /dev/sdb1 #查看ext文件系统内部细节
[root@oldboyedu ~]# dumpe2fs /dev/sdb1|egrep -i "size"
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Block size: 1024
Fragment size: 1024
Group descriptor size: 64
Flex block group size: 16
Inode size: 128
Journal size: 4096k
[root@oldboyedu ~]# xfs_
xfs_admin xfs_db xfs_fsr xfs_io xfs_metadump xfs_quota
xfs_bmap xfs_estimate xfs_growfs xfs_logprint xfs_mkfile xfs_repair
xfs_copy xfs_freeze xfs_info xfs_mdrestore xfs_ncheck xfs_rtcp
[root@oldboyedu ~]# xfs_
[root@oldboyedu ~]# xfs_info /dev/sda1
meta-data=/dev/sda1 isize=512 agcount=4, agsize=16384 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=65536, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@oldboyedu ~]# fsck
fsck fsck.btrfs fsck.cramfs fsck.ext2 fsck.ext3 fsck.ext4 fsck.minix fsck.xfs
[root@oldboyedu ~]# fsck
查看文件系统内部细节:
[root@oldboyedu ~]# dumpe2fs /dev/sdb1 #查看ext文件系统内部细节
[root@oldboyedu ~]# dumpe2fs /dev/sdb1|egrep -i "size"
dumpe2fs 1.42.9 (28-Dec-2013)
Filesystem features: has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super huge_file uninit_bg dir_nlink extra_isize
Block size: 1024
Fragment size: 1024
Group descriptor size: 64
Flex block group size: 16
Inode size: 128
Journal size: 4096k
[root@oldboyedu ~]# xfs_
xfs_admin xfs_db xfs_fsr xfs_io xfs_metadump xfs_quota
xfs_bmap xfs_estimate xfs_growfs xfs_logprint xfs_mkfile xfs_repair
xfs_copy xfs_freeze xfs_info xfs_mdrestore xfs_ncheck xfs_rtcp
[root@oldboyedu ~]# xfs_
[root@oldboyedu ~]# xfs_info /dev/sda1
meta-data=/dev/sda1 isize=512 agcount=4, agsize=16384 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=65536, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=855, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@oldboyedu ~]# fsck
fsck fsck.btrfs fsck.cramfs fsck.ext2 fsck.ext3 fsck.ext4 fsck.minix fsck.xfs
[root@oldboyedu ~]# fsck
swap作用,
文件删除原理
no space left on device.
swap作用,内存不够时候,用来充当内存,一般内存1.5倍。大于8G给8G
将来JAVA服务,内存泄漏。。。
swap就会占用。。。操作系统性能下降
[root@oldboyedu ~]# free -m
total used free shared buff/cache available
Mem: 1980 143 1689 9 146 1671
Swap: 767 0 767
增加swap分区 100M
[root@oldboyedu ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
Selected partition 4
First sector (718848-2097151, default 718848):
Using default value 718848
Last sector, +sectors or +size{K,M,G} (718848-2097151, default 2097151): +150M
Partition 4 of type Linux and of size 150 MiB is set
Command (m for help): p
Disk /dev/sdb: 1073 MB, 1073741824 bytes, 2097152 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 label type: dos
Disk identifier: 0x000006b6
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 411647 102400 83 Linux
/dev/sdb3 411648 718847 153600 83 Linux
/dev/sdb4 718848 1026047 153600 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@oldboyedu ~]# partprobe /dev/sdb
[root@oldboyedu ~]# mkswap /dev/sdb4
Setting up swapspace version 1, size = 153596 KiB
no label, UUID=2d1ac352-4cc0-4727-8318-5526a3c309c2
[root@oldboyedu ~]# swapon -a /dev/sdb4
You have new mail in /var/spool/mail/root
[root@oldboyedu ~]# free -m
total used free shared buff/cache available
Mem: 1980 144 1673 19 162 1658
Swap: 917 0 917
5:企业中如何选 择文件系统
6:如何优化文件系统
7:企业如何优化文件系统