1、描述GPT是什么,应该怎么使用。
Linux中磁盘分区分为MBR和GPT。
MBR全称为Master Boot Record,为主引导记录,是传统的分区机制,应用于绝大多数使用的BIOS的PC设备。
MBR分区的特点:
1、MBR支持32位和64位的系统
2、MBR支持分区数量有限
3、MBR只支持不超过2T的硬盘,超过2T的硬盘将只能用2T空间。
GPT(全称为Globally Unique Identifier Partition Table,意即GUID分区表)分区为全局唯一分区表,是一个较新的分区机制,解决了MBR很多缺点
GPT分区的特点:
①、支持超过2T的磁盘(64位寻址)。Fdisk最大只能建立2TB大小的分区
②、每个磁盘的分区个数几乎没有限制(Windows系统最多只允许划分128个分区)。
③、分区大小几乎没有限制。又是一个“几乎”。因为它用64位的整数表示扇区号,即 = 18,446,744,073,709,551,616。
④、分区表自带备份。在磁盘的首尾部分分别保存了一份相同的分区表,其中一份被破坏后,可以通过另一份恢复;
⑤、循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率;
⑥、向后兼容MBR必须在支持UEFI的硬件上才能使用(Intel提出,用于取代BIOS);
⑦、必须使用64位系统、每个分区可以有一个名称(不同于卷标);
⑧、Mac、Linux、Windows7/8 64bit、windows Server2008 64bits系统都能支持GPT分区格式;
要想使用GPT分区表必须是UEFI BIOS环境,UEFI和GPT相辅相成的,二者缺一不可,现在的服务器主板基本采用UEFI+BIOS共存模式,并且BIOS中集成UEFI启动项,如果我们的系统盘大小超过了2T我们需要使用UEFI模式进行系统安装并进行系统启动,在对大于2T的非系统盘进行分区时我们需要选择GPT分区格式。
2、创建一个10G的分区,并格式化为ext4文件系统。要求:
(1)block大小为2048,预留空间20%,卷标为MYDATA;
[root@benny~]#fdisk /dev/sdb
命令(输入 m 获取帮助):p
磁盘 /dev/sdb:1073 MB, 1073741824 字节,2097152 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x7ea8eef6
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+10G
分区 1 已设置为 Linux 类型,大小设为 10 GiB
命令(输入 m 获取帮助):w
[root@benny~]#mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=MYDATA
OS type: Linux
块大小=2048 (log=1)
分块大小=2048 (log=1)
Stride=0 blocks, Stripe width=0 blocks
655360 inodes, 5242880 blocks
104857 blocks (2.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=273678336
320 block groups
16384 blocks per group, 16384 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
16384, 49152, 81920, 114688, 147456, 409600, 442368, 802816, 1327104,
2048000, 3981312
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
(2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳。
[root@benny~]#mkdir /mydata
[root@benny~]#mount -o noatime,noexec -L MYDATA /mydata
[root@benny~]#df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root 50G 4.0G 47G 8% /
devtmpfs 898M 0 898M 0% /dev
tmpfs 910M 0 910M 0% /dev/shm
tmpfs 910M 9.6M 901M 2% /run
tmpfs 910M 0 910M 0% /sys/fs/cgroup
/dev/sda1 1014M 147M 868M 15% /boot
/dev/mapper/centos-home 28G 33M 28G 1% /home
tmpfs 182M 0 182M 0% /run/user/0
/dev/sdb1 9.8G 13M 9.6G 1% /mydata
(3)可开机自动挂载。
# /etc/fstab
# Created by anaconda on Tue Jul 2 10:21:47 2019
#
# 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
#
/dev/mapper/centos-root / xfs defaults 0 0
UUID=10c6e92a-a60c-469c-98c4-1b3e61d13bf0 /boot xfs defaults 0 0
/dev/mapper/centos-home /home xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
UUID=3b77b5a6-a685-4423-8562-cf969c0c449d /mydata ext4 defaults,noatime,noexec 0 0
[root@benny~]#df
文件系统 1K-块 已用 可用 已用% 挂载点
/dev/mapper/centos-root 52403200 4095016 48308184 8% /
devtmpfs 919008 0 919008 0% /dev
tmpfs 931624 0 931624 0% /dev/shm
tmpfs 931624 9796 921828 2% /run
tmpfs 931624 0 931624 0% /sys/fs/cgroup
/dev/sda1 1038336 150224 888112 15% /boot
/dev/mapper/centos-home 28416448 33688 28382760 1% /home
tmpfs 186328 0 186328 0% /run/user/0
/dev/sdb1 10254840 12308 10024626 1% /mydata
3、创建一个大小为1G的swap分区,并启用。
[root@benny~]#fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
分区号 (2-4,默认 2):
起始 扇区 (20973568-41943039,默认为 20973568):
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-41943039,默认为 41943039):+1G
分区 2 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):t
分区号 (1,2,默认 2):
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
[root@benny~]#mkswap /dev/sdb2
正在设置交换空间版本 1,大小 = 1048572 KiB
无标签,UUID=bdae305a-b381-4c3e-8c6c-72f2186dc844
[root@benny~]#free -m
total used free shared buff/cache available
Mem: 1819 167 1400 9 252 1451
Swap: 3071 0 3071
# 4、编写脚本计算/etc/passwd文件中第10个用户和第20个用户id号之和。
[root@benny~]#vim sum_userid.sh
user10id=$(cat /etc/passwd | head -10 | tail -1 | cut -d: -f3)
echo "/etc/passwd 第10个用户ID是 ${user10id}"
user20id=$(cat /etc/passwd | head -20 | tail -1 | cut -d: -f3)
echo "/etc/passwd 第20个用户ID是 ${user20id}"
echo "/etc/passwd 第10个用户和第20个用户id号之和是 $((${user10id}+${user20id}))"
/etc/passwd 第10个用户ID是 11
/etc/passwd 第20个用户ID是 1000
/etc/passwd 第10个用户和第20个用户id号之和是 1011
5、将当前主机名保存至hostName变量中,主机名如果为空,或者为1ocalhost.1ocaldomain则将设置为www.magedu.com
[root@benny~]#hostName=$(hostname) && [ $hostName == ' ' -o $hostName == "localhost.localdomain" ] && hostname www.magedu.com
6、编写脚本,通过命令行参数传入一个用户名,判断id号是偶数还是奇数。
[root@benny~]#vim IDJO.sh
#!/bin/bash
#
#********************************************************************
#Author: benny
#QQ: 759354304
#Date: 2019-08-22
#FileName: IDJO.sh
#URL: http://www.benny.com
#Description: The test script
#Copyright (C): 2019 All rights reserved
#********************************************************************
#!/bin/bash
#
if [ $# != 1 ] ; then
echo please input one username
exit 2;
fi
userid=$(grep "^$1" /etc/passwd | cut -d: -f3)
echo "$1 userid is ${userid}"
if [ $((${userid}/2)) == 0 ] ; then
echo "$1 ID号为偶数"
else
echo "$1 ID号为奇数"
fi
ntp userid is 38
ntp ID号为偶数
[root@benny~]#bash IDJO.sh root
root userid is 0
root ID号为偶数
7、lvm基本应用以及扩展缩减实现。
VM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。
Version: 2
(1)创建lvm
①对磁盘分区
[root@benny~]#fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
分区号 (3,4,默认 3):
起始 扇区 (23070720-41943039,默认为 23070720):
将使用默认值 23070720
Last 扇区, +扇区 or +size{K,M,G} (23070720-41943039,默认为 41943039):+20G
值超出范围。
Last 扇区, +扇区 or +size{K,M,G} (23070720-41943039,默认为 41943039):+5G
将使用默认值 41943039
分区 3 已设置为 Linux 类型,大小设为 9 GiB
命令(输入 m 获取帮助):T
分区号 (1-3,默认 3):
Hex 代码(输入 L 列出所有代码):8E
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):W
②创建物理卷
[root@benny~]#pvcreate /dev/sdb3
Physical volume "/dev/sdb3" successfully created.
[root@benny~]#pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
[root@benny~]#pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size <99.00 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25343
Free PE 5070
Allocated PE 20273
PV UUID 1WWhP3-fT8X-E6qQ-fpuq-AeGU-bFB9-RN0tBX
"/dev/sdc1" is a new physical volume of "8.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size 8.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ZtbRV2-PmB9-DNdG-WoMn-FEWZ-Pnko-kV9v6o
"/dev/sdb3" is a new physical volume of "<9.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb3
VG Name
PV Size <9.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID jochth-rd5U-Zr3X-D7vc-CuZX-JVs6-klgEg0
③创建组卷
[root@benny~]#vgcreate vg01 /dev/sd{b3,c1}
Volume group "vg01" successfully created
[root@benny~]#vgdisplay
--- Volume group ---
VG Name vg01
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 16.99 GiB
PE Size 4.00 MiB
Total PE 4350
Alloc PE / Size 0 / 0
Free PE / Size 4350 / 16.99 GiB
VG UUID WA9w1a-OTDb-ODK6-Pt4h-ZlVG-Kzi0-p
④创建逻辑卷
[root@benny~]#lvcreate -L 500m vg01
Logical volume "lvol0" created.
⑤在逻辑卷上创建系统
[root@benny~]#mkfs.ext4 /dev/vg01/lvol0
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 512000 blocks
25600 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=34078720
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
⑥挂载逻辑卷
[root@benny~]#mount /dev/vg01/lvol0 /mnt/data/
-----------------------------------------------------------------------------
[root@benny~]#lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 99G 0 part
├─centos-pool00_tmeta 253:0 0 40M 0 lvm
│ └─centos-pool00-tpool 253:2 0 77.1G 0 lvm
│ ├─centos-root 253:3 0 50G 0 lvm /
│ ├─centos-pool00 253:5 0 77.1G 0 lvm
│ └─centos-home 253:6 0 27.1G 0 lvm /home
├─centos-pool00_tdata 253:1 0 77.1G 0 lvm
│ └─centos-pool00-tpool 253:2 0 77.1G 0 lvm
│ ├─centos-root 253:3 0 50G 0 lvm /
│ ├─centos-pool00 253:5 0 77.1G 0 lvm
│ └─centos-home 253:6 0 27.1G 0 lvm /home
└─centos-swap 253:4 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part /mydata
├─sdb2 8:18 0 1G 0 part
└─sdb3 8:19 0 9G 0 part
└─vg01-lvol0 253:7 0 500M 0 lvm /mnt/data
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 8G 0 part
sr0 11:0 1 4.3G 0 rom
(2)扩展和缩减逻辑卷
[root@benny~]#lvextend -L +100M /dev/vg01/lvol0 ##为了解决增加100M空间
Size of logical volume vg01/lvol0 changed from 500.00 MiB (125 extents) to 600.00 MiB (150 extents).
Logical volume vg01/lvol0 successfully resized.
resize2fs /dev/vg01/lvol0 #修改文件大小
缩减逻辑卷(实际操作中不建议使用)
①、卸载文件系统
②、检查文件系统完整性
③、resize2fs命令重新设定文件系统大小
④、lvreduce命令缩减文件系统
⑤重新挂载文件系统
(3)快照:snapshot
为现有逻辑卷创建快照
挂载快照
恢复快照
删除快照