新建虚拟机,使用逻辑卷重装系统

要求:

1./boot分区必须是标准分区,不能是逻辑卷;
2. 其他分区使用逻辑卷;
3.下面其他小题使用此新系统完成;

0. 系统安装过程与解题过程须知

  1. 静态配置网络IP地址
  2. yum仓库配置与软件下载
  3. 理解Centos6系统启动过程中,Grub启动的作用
  4. 完成这道题的测试过程当中系统卡在Grub启动无法启动,如何通过修改内核参数启动系统?

1. 整体思路

  • /dev/sda1对应的**/boot分区仍然保持为标准分区**;
  • 新建立一个**/dev/sda4**,设置为lvm分区,并为其设置卷组plvg(不是标准分区);
  • 原先的/dev/sda2即swap分区卸载掉,在卷组plvg里申请一块同等大小的分区作为逻辑分区命名为plvg-LVswap;
  • 在plvg卷组申请一块足够大的逻辑分区plvg-LVroot作为新的根分区,原先的/dev/sda3即/ 即根分区,利用命令dd将原先/dev/sda3即根分区的内容复制到新的根分区
  • 修改对应的grub.conf内核参数,以及新的分区下/etc/fstab文件新根分区和swap分区的UUID
  • 重启测试

2. 新建虚拟机后启动系统,对当前文件系统分析

df命令查看当前文件系统的磁盘空间使用情况:

[root@localhost ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda3       3.9G  1.4G  2.3G  37% /
tmpfs           491M     0  491M   0% /dev/shm
/dev/sda1       190M   35M  146M  19% /boot

fdisk指令查看分区情况

[root@localhost ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000b3fda

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         287     2097152   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             287         809     4194304   83  Linux
Partition 3 does not end on cylinder boundary.

​ 综上可知,/dev/sda磁盘我们使用了约6.2GB的存储空间,且磁盘空间为21.5GB,所以有约14GB左右的的可用空间。所以提出如下方案:

  • 将/dev/sda剩余磁盘空间申请并划分为LVM分区
  • 将原来的分区文件(除了/boot分区以外,这里指根分区)移动到LVM分区

3. 添加一个LVM分区

[root@localhost ~]# fdisk /dev/sda
									  #此处省略内容...
Command (m for help): n  				#创建分区
Command action
   e   extended
   p   primary partition (1-4)
p  									  #选择主分区就行
Selected partition 4
First cylinder (809-2610, default 809):   #直接回车键
Using default value 809
Last cylinder, +cylinders or +size{K,M,G} (809-2610, default 2610): 										#这里也直接回车键,用完剩下的磁盘空间
Using default value 2610

Command (m for help): p   				#打印分区
									  #此处省略内容..
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26         287     2097152   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             287         809     4194304   83  Linux
Partition 3 does not end on cylinder boundary.   
/dev/sda4             809        2610    14467545   83  Linux
Command (m for help): w
The partition table has been altered!
									  #此处省略内容..

4. 建立LVM分区(以/dev/sda4为物理卷,以此生成卷组)

[root@localhost ~]# pvcreate /dev/sda4    		#新增物理卷
  Physical volume "/dev/sda4" successfully created
[root@localhost ~]# vgcreate plvg /dev/sda4      #新增卷组
  Volume group "plvg" successfully created
[root@localhost ~]# vgdisplay				   # 查看卷组
  --- Volume group ---
  VG Name               plvg   				   #卷组名
  System ID             
  Format                lvm2 				   #卷组格式
  Metadata Areas        1
  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                1
  Act PV                1		   
  VG Size               13.79 GiB   		    #卷组大小约14GB
  PE Size               4.00 MiB    			#物理区块大小
  Total PE              3531
  Alloc PE / Size       0 / 0   
  Free  PE / Size       3531 / 13.79 GiB
  VG UUID               zIjDh4-eZoU-NKvc-n4kb-L0l4-NTgY-fr9Ofu #卷标

#以下新增两个逻辑卷分别用来还原根目录和swap分区
[root@localhost ~]# lvcreate -L 4G -n LVroot plvg    #新增逻辑卷
  Logical volume "LVroot" created.					
[root@localhost ~]# mkfs -t ext4 /dev/plvg/LVroot    #格式化逻辑卷
[root@localhost ~]# lvcreate -L 2G -n LVswap plvg    #新增逻辑卷
  Logical volume "LVswap" created.
[root@localhost ~]# mkswap -f /dev/plvg/LVswap 		 #格式化逻辑卷

5. 复制根目录到LVM分区并修改UUID

[root@localhost ~]# ls /mnt
[root@localhost ~]# mkdir /mnt/lvroot
[root@localhost ~]# mount /dev/mapper/plvg-LVroot /mnt/lvroot/ 

#dd指令克隆根目录所在分区到LVroot逻辑卷分区,等待一段时间...
[root@localhost ~]# dd if=/dev/sda3 of=/dev/mappper/plvg-LVroot
#通过blkid命令查看每个分区的UUID,发现,/dev/sda3与逻辑卷/dev/mapper/plvg-LVroot的UUID一样。所以选择修改其中任一UUID,我们这里选择逻辑卷
[root@localhost ~]# uuidgen | xargs tune2fs /dev/mapper/LVroot
[root@localhost /]# blkid		#查看各个分区的UUID
/dev/sda1: UUID="33d15e50-2b7f-40a1-9b52-fe7298ae0d77" TYPE="ext4" 
/dev/sda2: UUID="755a66d7-cc06-46e5-ad3c-a65b4f890ac3" TYPE="swap" 
/dev/sda3: UUID="6b794215-1395-4cdc-9dd1-11857b9819bc" TYPE="ext4" 
/dev/sda4: UUID="uPkxFJ-Udxs-Hgqf-syhK-Y2pC-3ia2-QwX3pH" TYPE="LVM2_member" 
/dev/mapper/plvg-LVroot: UUID="eef4d341-5df6-4fb7-b10b-dcbc24b296cc" TYPE="ext4"       #现在UUID就和/dev/sda3不一样了
/dev/mapper/plvg-LVswap: UUID="0f36fdce-0d2e-4038-a7f3-7eef0981f6d0" TYPE="swap" 

6. 修改GRUB配置文件,和/etc/fstab文件系统配置表

grub.conf文件决定了应该在哪一个分区启动系统:根分区;

/etc/fstab决定了根分区和swap分区的挂载;

  • 修改/boot/grub.grub.conf(这里前提是,boot分区是独立分区/dev/sda1)

    #修改UUID,同时,切记:删除rd_NO_LVM选项
            kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=eef4d341-5df6-4fb7-b10b-dcbc24b296cc rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
    
  • 修改逻辑卷下根分区的/etc/fstab为逻辑卷UUID

    [root@localhost /]# vim /mnt/lvroot/etc/fstab
    #修改以下UUID
    UUID=eef4d341-5df6-4fb7-b10b-dcbc24b296cc /                       ext4    defaults        1 1
    UUID=0f36fdce-0d2e-4038-a7f3-7eef0981f6d0 swap                    swap    defaults        0 0
    
  • 命令reboot重启系统,静静等待

7. 登陆系统,查看系统相关信息

[root@localhost /]# df
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/mapper/plvg-LVroot
                       3997376 1632660   2155004  44% /
tmpfs                   502056       0    502056   0% /dev/shm
/dev/sda1               194241   34857    149144  19% /boot

以上表明,LVM分区已经挂载到根目录下,系统正常启动

8. 删除/dev/sda2分区和/dev/sda3分区

[root@localhost ~]# fdisk /dev/sda
d  #删除选项
2  #删除/dev/sda2即旧swap分区
d  
3  #删除/dev/sda3即旧根分区
w  #保存操作

[root@localhost ~]# reboot #重启
[root@localhost ~]# lsblk  #查看当前分区情况
NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0                     11:0    1  3.7G  0 rom  
sda                      8:0    0   20G  0 disk 
├─sda1                   8:1    0  200M  0 part /boot
└─sda4                   8:4    0 13.8G  0 part 
  ├─plvg-LVroot (dm-0) 253:0    0    4G  0 lvm  /
  └─plvg-LVswap (dm-1) 253:1    0    2G  0 lvm  [SWAP]
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐