一、描述GPT是什么,应该怎么用?
是分区的一种格式和MBR是对等的,并且是一个标识分区,新的分区机制。
支持超过2T的磁盘(64位寻址空间)。fdisk最大只能建立2TB大小的分区,创建一个大于2TB的分区使用parted。
向后兼容MBR。
必须在支持UEFI的硬件上才能使用(Intel提出,用于取代BIOS)。
GPT+UEFI
必须使用64位系统。
Mac、Linux系统都能支持GPT分区格式。
Windows 7/8 64bit、Windows Server 2008 64bit支持GPT。
以上就是Linux系统MBR和GPT分区的区别,总得来说GPT比MBR更先进,但是MBR的兼容性比GPT要好。
在Linux系统中使用GPT分区格式(以CentOS 7为例):
parted用法和常用选项:
用法:parted [选项]... [设备 [命令 [参数]...]...]
将带有“参数”的命令应用于“设备”。如果没有给出“命令”,则以交互模式运行.
帮助选项:
-h, --help 显示此求助信息
-l, --list 列出所有设别的分区信息
-i, --interactive 在必要时,提示用户
-s, --script从不提示用户
-v, --version显示版本
操作命令:
检查 MINOR #对文件系统进行一个简单的检查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区
help [COMMAND] #打印通用求助信息,或关于 COMMAND 的信息
mklabel 标签类型 #创建新的磁盘标签 (分区表)
mkfs MINOR 文件系统类型 #在 MINOR 创建类型为“文件系统类型”的文件系统
mkpart 分区类型 [文件系统类型] 起始点 终止点 #创建一个分区
mkpartfs 分区类型 文件系统类型 起始点 终止点 #创建一个带有文件系统的分区
move MINOR 起始点 终止点 #移动编号为 MINOR 的分区
name MINOR 名称 #将编号为 MINOR 的分区命名为“名称”
print [MINOR] #打印分区表,或者分区
quit #退出程序
rescue 起始点 终止点 #挽救临近“起始点”、“终止点”的遗失的分区
resize MINOR 起始点 终止点 #改变位于编号为 MINOR 的分区中文件系统的大小
rm MINOR #删除编号为 MINOR 的分区
select 设备 #选择要编辑的设备
set MINOR 标志 状态 #改变编号为 MINOR 的分区的标志
二、创建一个10G的分区,并格式化为ext4的文件系统要求:
fdisk /dev/sdb
n
1
p
默认起始
+10G
创建为ext4的文件系统
mk2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1
1、要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA,
修改默认挂载属性包含acl
tune2fs -o acl /dev/sdb1
2、挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳;
挂载至/data/mydata
mkdir -p /data/mydata
amount -o noexec noatime /data/mydata /dev/sdb1
3、开机可以自动挂载
开机自动挂载:
在/etc/fstab中添加一行
LALEL=MYDATA /data/mydata ext4 defaults,acl,noexec,noatime 0 0
mount -a
三、创建一个大小为1G的swap分区,并创建好文件系统,并启用之;
先格式化一块1G的磁盘分区
fdisk /dev/sdb
n
2
p
默认起始值
+1G
调整磁盘类型为swap可用
t
82
w
重读分区
kpartx -af /dev/sdb
创建swap文件系统
(1)、临时
mkswap /dev/sdb2
swapon /dev/sdb2
(2)、开机启动挂载
编辑/etc/fstab,增加
/dev/sdb2 swap swap defaults 0 0
四、编写一个脚本/etc/passwd中第10个用户和第20个用户ID号之和。
#!/bin/bash
uid10=head -n 10 /etc/passwd | tail -n 1 | cut -d':' -f3
uid20=$(head -n 20 /etc/passwd | tail -n 1 | cut -d':' -f3)
let sum=$uid10+$uid20
echo "let expression: $sum"
sum=$[$uid10+$uid20]
五、将当前主机名保存到hostname变量中,主机名如果为空,或者为local.host.localdomain将设置为www.magedu.com.
hostName=$(hostname)
[ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName" == "localhost" ] && hostname www.magedu.com
六、编写脚本,通过命令行参数传入一个用户名,判断id号是偶教还是奇教。
#!/bin/bash
[[ $# != 1 ]] && echo "input a username:" ||exit
grep "^\<$1\>" /etc/passwd | awk -F: '{print "user is " $1,",uid is " $3} {if($3%2 == 0){print "偶数"} else {print "奇数"}}'
七、lvm的基本应用及收缩扩展
1、创建lvm
新增硬盘
Fdisk –l
More /proc/partitions 或者lsblk查看
Fdisk /dev/sdb 创建分区,格式为LVM,记得保存w退出,创建后可能读不出来,需要重启或者partprobe或者kpartx –a /dev/sdb或者partx -a /dev/sdb
Fdisk –l 或者lsblk查看
Pvcreate /dev/sdb1 pvdisplay
Vgcreate vg1 /dev/sdb1 vgdisplay -s 8M 注: -s 指定PE大小
Lvcreate –L 4.99G –n lv1 vg1 注:-l 指定PE个数 –L指定大小 -n指定名称
Lvdisplay
Mkfs.ext4 /dev/vg1/lv1
Mount /dev/vg1/lv1 /mnt
或者vi /etc/fstab
/dev/mapper/vg1-lv1 /mnt ext4 default 0 0
Mount –a
2、卷组变化
(1) 扩展卷组
fdisk /dev/sdb #新增/dev/sdb5(逻辑分区8e) 2G
pvcerate /dev/sdb5 #创建物理卷sdb5
vgextend vg1 /dev/sdb5 #把物理卷sdb5添加到vg1卷组中
lvresize -L 100M /dev/vg1/lv1 #扩容逻辑卷大小
Df –h
如果挂载的大小没变
Resize2fs /dev/vg1/lv1 Df –h
(需要重新格式化和挂载吗?)不需要
(2) 扩容逻辑卷,扩容不影响扩容前磁盘里面的内容
lvresize -L 300M /dev/vg1/lv1 #重新设定大小 lvextend也行
e2fsck -f /dev/vg1/lv1 #检查磁盘错误 (针对ext4执行)
resize2fs /dev/vg1/lv1 #更新逻辑卷信息(针对ext4执行)
(3) 缩减逻辑卷,xfs不支持,缩减前先unmount
e2fsck -f /dev/vg1/lv1 #检查磁盘错误 (针对ext4执行)
resize2fs /dev/vg1/lv1 100M #更新逻辑卷信息(针对ext4执行)
lvresize -L 100M /dev/vg1/lv1 #重新设定大小
3、离线卸载
1.lvscan , vgscan 或者 lvdisplay,vgdisplay一下
2.举例:我的LV1 和VG1要删除
umount /mnt/lv1
将lv1逻辑卷至离线状态
lvremove lv1
删除了lv1之后 ,到vg1了,
vgchange -an /dev/vg1 -------- -an离线 (非活动)-ay 上线(活动)
vgremove /dev/vg1
pv物理卷 其实可以不用理会 pvremove
转载于:https://blog.51cto.com/14086421/2338956