1.描述GPT是什么,应该怎么使用
GPT(GUID Partition Table)意为GUID分区表,是UEFI 规范的一部分,逐渐取代MBR.
与MBR相比,GPT具有以下优点:
1.可管理2TB以上的硬盘容量
2.分区数量几乎没有限制,不过,目前windows仅支持最大128个分区。
3.自带备份,在磁盘的首尾部分各带一个GPT表头,任何一个受到破坏后都可以通过另一份恢复。
4.循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率。
5.循环冗余检验值针对关键数据结构而计算,提高了数据崩溃的检测几率。
6.GPT使用一个16字节的全局唯一标识符(GUID)值来标识分区类型。
fdisk工具不支持GPT,所以使用parted工具分区
parted [options] [device [command [options...]...]]
如果没有出现命令,则以交互模式运行。在交互模式下执行命令,一旦按回车键确认,命令就马上执行,对磁盘的更改就立刻生效。
常用选项:-h,--help 显示此帮助信息
-l , --list 列出所有设备的分区信息
-I , --interactive 在必要是,提示用户
-s, --script 从不提示用户
-v , --version 显示版本
子命令
Minot # 对文件系统进行一个简单的检查
cp [FROM-DEVICE] FROM-MINOR TO-MINOR #将文件系统复制到另一个分区
help [COMMAND] #打印通用求助信息,或关于command信息
mklable 标签类型 #创建新的磁盘标签(分区表)
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
Welcome to fdisk (util-linux 2.23.2).
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): 1
First sector (2048-31457279, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-31457279, default 31457279):+10G
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
cat /proc/partitions
major minor #blocks name
11 0 940032 sr0
8 0 20971520 sda
8 1 1048576 sda1
8 2 19921920 sda2
8 16 15728640 sdb
8 17 10485760 sdb1
(1)block大小为2048;预留空间为2%,卷标为MYDATA
mke2fs -t ext4 -b 2048 -m 2 -L MYDATA /dev/sdb1
blkid /dev/sdb1
/dev/sdb1: LABEL="MYDATA" UUID="a9712c0e-4c7d-43b7-82f0-693168121d3a" TYPE="ext4"
tune2fs -l /dev/sdb1
Block size: 2048
(2)挂载至/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳
mount -o noatime,noexec /dev/sdb1 /mydata
(3)可开机自动挂载
vim /etc/fstab
/dev/sdb1 /mydata ext4 defaults 0 0
创建一个大小为1G的swap分区,并启用。
fdisk /dev/sdb
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (2048-31457279, default 2048): 2048
Last sector, +sectors or +size{K,M,G} (2048-31457279, default 31457279): +1G
Partition 2 of type Linux and of size 1 GiB is set
Command (m for help): t
Partition number (1,2, default 2): 2
Hex code (type L to list all codes): L
0 Empty 24 NEC DOS 81 Minix / old Lin bf Solaris
1 FAT12 27 Hidden NTFS Win 82 Linux swap / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 hidden C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux extended c7 Syrinx
5 Extended 41 PPC PReP Boot 86 NTFS volume set da Non-FS data
6 FAT16 42 SFS 87 NTFS volume set db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux plaintext de Dell Utility
8 AIX 4e QNX4.x 2nd part 8e Linux LVM df BootIt
9 AIX bootable 4f QNX4.x 3rd part 93 Amoeba e1 DOS access
a OS/2 Boot Manag 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad hi eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 Ext'd (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC b
11 Hidden FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq diagnost 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 Hidden FAT16 <3 61 SpeedStor ab Darwin boot f2 DOS secondary
16 Hidden FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 Hidden HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST SmartSleep 65 Novell Netware b8 BSDI swap fd Linux raid auto
1b Hidden W95 FAT3 70 DiskSecure Mult bb Boot Wizard hid fe LANstep
1c Hidden W95 FAT3 75 PC/IX be Solaris boot ff BBT
1e Hidden W95 FAT1 80 Old Minix
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): w
The partition table has been altered!
partx -a /dev/sdb
lsblk
sdb 8:16 0 15G 0 disk
├─sdb1 8:17 0 10G 0 part
└─sdb2 8:18 0 1G 0 part
# mkswap /dev/sdb2
mkswap: /dev/sdb2: warning: wiping old ext4 signature.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=e1ee4721-fc73-4ebe-85a8-80aa5f6802ec
# swapon /dev/sdb2
计算/etc/passwd文件中的第10个用户和第20个用户的id号之和
#!/bin/bash
id1=$(head -10 /etc/passwd | tail -1 | cut -d: -f3)
id2=$(head -20 /etc/passwd | tail -1 | cut -d: -f3)
echo "sum =$[$id1+$id2]"
将当前主机名保存至hostName变量中,主机名如果为空,或者为localhost.localdomain则将设置为www.magedu.com
hostName=$(hostname)
[ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName"=="localhost" ] && hostname www.magedu.com
编写脚本,通过命令行参数传人一个用户名,判断id号是偶数还是奇数。
#!/bin/bash
if [ $# -lt 1 ];then
echo "add one username"
exit 1
fi
if grep "^$1\>" /etc/passwd &> /dev/null;then
ID=$(id -u $1)
if [ $[$ID % 2] eq 0 ];then
echo "$1\'s ID is even"
else
echo "$1\' ID is odd"
fi
else
echo "user not exist"
exit 2
fi
lvm基本应用以及扩展缩减实现
逻辑卷管理(Logical Volume Manager)建立在物理存储设备之上的一个抽象层,允许你生成逻辑存储卷,和直接使用物理存储在管理上相比,提供了更好灵活性。
优点:
1.灵活的容量
当使用逻辑卷时,文件系统能扩展到多个磁盘上,你能聚合多个磁盘或磁盘分区成单一的逻辑卷.
2.可伸缩的存储池.
你能使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备.
3.在线的数据再分配.
你能在线移动数据,数据能在磁盘在线的情况下重新分配.比如,你能在线更换可热插拔的磁盘.
4. 方便的设备命名
逻辑卷能按你觉得方便的方式来起所有名称.
5.磁盘条块化.
你能生成一个逻辑盘,他的数据能被条块化存储在2个或更多的磁盘上.这样能明显提升数据吞吐量.
6.映像卷
逻辑卷提供方便的方法来映像你的数据.
7.卷快照
使用逻辑卷,你能获得设备快照用来一致性备份或测试数据更新效果而不影响真实数据.
- 物理卷(PV)
物理卷就是指磁盘,磁盘分区或从逻辑上和磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有和LVM相关的管理参数。管理命令:
pvcreate : 创建pv
pvscan:搜索系统中有pv的硬盘
pvdisplay:显示系统上的PV状态
pvs:简要显示pv信息
pvremove:删除物理卷
pvmove:移动pv上的pe至其他pv上
2.卷组(VG)
LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。能在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。管理命令:
vgcreate:创建VG
vgscan:搜索系统中是否有VG存在
vgdisplay:显示系统上VG状态
vgextend:在VG内添加额外PV
vgreduce:在VG内移除PV
vgchange:配置VG是否启动
vgremove:删除VG
- 逻辑卷(LV)
LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上能建立文件系统(比如/home或/usr等)。管理命令:
lvcreate:创建LV
lvscan:查看系统中的LV
lvdisplay:显示LV的状态
lvextend:在LV内添加容量
lveduce:在LV里面减少容量
lvremove:删除一个LV
lvresize:对LV进行容量大小的调整
扩展逻辑卷:
#lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
#resize2fs /dev/VG_NAME/LV_NAME
缩减逻辑卷
#umount /dev/VG_NAME/LV_NAME
#e2fsck -f /dev/VG_NAME/LV_NAME
#resize2fs /dev/VG_NAME/LV_NAME
#lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME
#mount
快照:snapshot
lvcreate -L #[mMgGtT] -p r -s -n snapshot_lv_name original_lv_name