一、熟练使用常用磁盘管理工具。
1、在虚拟机的环境下添加一个硬盘,硬盘容量为5G(提示:最好是关机添加)
2、利用fdisk在新硬盘上创建一个1G的主分区,创建一个4G的扩展分区,并在此基础上创建两个逻辑分区,大小分别为3G和1G。
fdisk -l 列出系统中所有磁盘的分区信息。
可以看到我们刚刚创建的硬盘 /dev/sdb
fdisk /dev/sdb 打开fdisk操作菜单
- 输入
n
来创建一个新的分区。 - 选择
p
来创建一个主分区。 - 选择分区号,通常从
1
开始。 - 设置分区大小为
+1G
。
- 再次输入
n
来创建一个新的分区。 - 选择
e
来创建一个扩展分区。 - 选择分区号,通常紧随最后一个主分区之后。
- 设置分区大小为
+4G
。
- 输入
n
来在扩展分区内创建一个新的逻辑分区。 - 系统会自动选择逻辑分区编号,通常从
5
开始。 - 设置第一个逻辑分区的大小为
+3G
。 - 再次输入
n
来创建第二个逻辑分区。 - 系统会自动选择下一个逻辑分区编号。
- 设置第二个逻辑分区的大小为
+1G
。
完成分区后,输入p来查看分区表,确保分区大小和类型都正确。
输入w来写入分区表并退出fdisk
3、创建相关的文件系统(格式化相关的分区),文件系统类型均为ext4。
sudo mkfs.ext4 /dev/sdb1
4、在根目录下新建一个目录,目录名称为你姓名的全拼(例如:张三 /zhangsan),并将容量为 3G 的分区手动挂载到这个目录下。
sudo mkdir /zhangzhouqi
sudo mount /dev/sdb1 /zhangzhouqi
5、查看容量为3G的分区使用情况,并显示文件系统类型。
df -h /zhangzhouqi
6、现在我们要实现在系统启动时就自动挂载3G的分区,那么这个该如何实现呢?
需要编辑 /etc/fstab
文件,添加以下内容:
/dev/sdb1 /zhangzhouqi ext4 defaults 0 0
二、理解LVM的基本概念
1、LVM简介。
LVM(Logical Volume Manager)是一种灵活的磁盘存储管理器,通过它可以实现物理存储空间的抽象化、动态扩展和缩小逻辑卷等功能。
2、PV、VG、LV、PE的基本概念。
-
物理卷(PV):物理卷是LVM的基本构建单元,通常对应于硬盘或硬盘分区。在创建LVM之前,需要将传统的磁盘分区标记为LVM物理卷。这是通过工具如
fdisk
或parted
来完成的,其中分区类型被设置为8e,表示Linux LVM。 -
卷组(VG):一个或多个物理卷组成一个卷组。卷组可以看作是物理卷的容器,它汇集了各物理卷的空间,并形成了一个可分配的存储池。在这个存储池中,可以创建逻辑卷。
-
逻辑卷(LV):逻辑卷是在卷组中创建的,它是文件系统可以直接使用的存储单元。逻辑卷的大小可以根据需要来设定,并且可以在不中断服务的情况下动态地扩展或缩小。
-
物理区块(PE):物理区块是LVM中的最小存储单位。每个PE代表物理卷中的一段固定大小的存储空间。当创建卷组时,需要指定PE的大小,这个大小决定了逻辑卷的最大容量。
三、建立物理卷、卷组和逻辑卷、管理LVM逻辑卷。
1、分别添加三个1G的硬盘。
利用前面所学的内容新建三个1G硬盘,我们将其标记为/dev/sdb
、/dev/sdc
和/dev/sdd。
2、利用pvcreate命令在2个硬盘上建立物理卷。
sudo pvcreate /dev/sdb /dev/sdc
3、在创建好物理卷后,使用vgcreate命令建立卷组名称为vg0,大小为2G。
sudo vgcreate vg0 /dev/sdb /dev/sdc
4、使用命令lvcreate在已有卷组上建立逻辑卷。
4.1、在卷组vg0上创建名字为lv0,大小为200M的逻辑卷
sudo lvcreate -L 200M -n lv0 vg0
4.2、使用lvdisplay命令显示创建的lv0的信息
sudo lvdisplay lv0
4.3、扩大lv0的容量为2200M,出现什么问题?
sudo lvextend -L 2200M /dev/vg0/lv0
会出现问题,因为卷组中没有足够的空间。
4.4、当卷组中没有足够的空间分配给逻辑卷时,可以用给卷组增加物理卷的方法来增加卷组的空间。请为卷组vg0添加物理卷,扩大卷组容量。
sudo pvcreate /dev/sdd
sudo vgextend vg0 /dev/sdd
4.5、扩大lv0的大小为2200M。
sudo lvextend -L 2200M /dev/vg0/lv0
4.6、使用lvdisplay命令显示逻辑卷lv0的信息,并使用lvreduce命令减少逻辑卷200M的容量.
sudo lvdisplay lv0
sudo lvreduce -L 200M /dev/vg0/lv0
5、为lv0创建ext4类型的文件系统,然后将逻辑卷lv0自动挂载到/project。
sudo mkfs.ext4 /dev/vg0/lv0
sudomkdir /project
echo '/dev/vg0/lv0 /project ext4 defaults 0 0' | sudo tee -a /etc/fstab
sudo mount -a
6、卸载/project,然后依次删除逻辑卷lv0,卷组vg0,物理卷。
sudo umount /project
sudo lvremove -f /dev/vg0/lv0
sudo vgremove -f vg0
sudo pvremove /dev/sdb /dev/sdc /dev/sdd
四、 全面理解文件系统与目录
1、详细列出/tmp文件,并说明文件属性的含义。
在Linux系统中,/tmp
目录通常用于存放临时文件。查看/tmp目录下的文件和文件夹,可以使用ls /tmp
、ll /tmp
以及tree /tmp
命令。文件属性包括权限、所有者、组、大小和修改时间等详细信息。其中,文件类型(如普通文件、目录、链接)、权限(读r、写w、执行x)以及所有者和组的信息是核心属性。
五、管理Linux文件权限
1、假定m y f i l e文件最初具有这样的权限:r w x rwx rwx : 则依次执行下列命令后,结果如何?
命令 | 相应的权限 |
chmod a-x myfile chmod og-w myfile | 文件 |
chmod g+w myfile | 文件 |
chmod u+x myfile | 文件 |
chmod go+x myfile | 文件 |
2、在/tmp目录下创建一个happy的空文件,并设置文件所有者、所属组的权限为可写可执行,其它组权限可读;
touch /tmp/happy
chmod 674 /tmp/happy
3、改变tmp目录下cc目录及子目录下所有文件或目录的所有者、所属组的权限为可读可写可执行,其它组权限可读可执行;
chmod -R 775 /tmp/cc
4、对文件addusers的属主添加执行权限
chmod u+x addusers
5、对文件addusers1的属主添加执行权限,同时取消组用户和其他用户对文件的读取权限。
chmod u+x,go-r addusers1
6、对文件addusers的属主设置读、写和执行权限,所属组用户和其他用户只设置读和执行的权限,没有写的权限。
chmod 755 addusers
7、取消组用户和其他用户对文件users的读取权限。
chmod go-r users
8、取消组用户和其他用户对文件users1的一切权限。
chmod go-rwx users1
9、chmod ug=rwx,o=x file指令如果用数字来表示应该如何写?
chmod 751 file
10、权限对于使用者账号来说是非常重要的,因为其可以限制使用者不能读取/建立/删除/修改文件或目录。
-
让用户能进入某目录成为可工作目录的基本权限为?
x
(执行权限) -
用户在某个目录内读取一个文件的基本权限为?
r
(读取权限) -
让使用者可以修改一个文件的基本权限为?
w
(写入权限) -
让一个使用者可以建立一个文件的基本权限为?
w
(写入权限)在目录中 -
让用户进入某目录并执行该目录下的某个指令的基本权限为?
x
(执行权限)
11、将happy文件的属主改为liao,属组为liao
chown liao:liao /tmp/happy
12、将test及在下的所有目录及文件的属主改为wang,属组改为lrj(文件及用户和组要自己新建)
mkdir -p test
touch test/example.txt
chown -R wang:lrj test
13、使用chgrp命令将test的属组改为root。
chgrp root test
14、假设你的umask为002,在此情况下建立的文件与目录的权限是怎样的?
- 默认权限为666(文件)和777(目录),减去umask值002,结果是:
- 文件的权限:664
- 目录的权限:775