Centos
Cloud-growpart 我在分區方面做錯了什麼
我正在準備一個 Centos7.4 雲映像,並且我已經安裝了 cloud-init cloud-utils 和 cloud-growpart。
當我作為 qcow2 圖像導入 Openstack 時,如果我創建一個磁碟比原始圖像更大的實例,它不會調整我的根目錄的大小。如果我使用沒有 LVM 和單個分區的普通磁碟,它可以工作。
出於某種原因,它不喜歡設置 2 分區,其中 /boot 是分區 1,/ 是分區 2。如果根分區是最後一個分區,所有文件似乎都說 cloud-utils-growpart 將與 lvm 和 ext4 一起使用。有任何想法嗎 ?
fstab
# /etc/fstab # Created by anaconda on Fri Jan 19 16:49:58 2018 # # 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 / ext4 defaults 1 1 UUID=aa806546-2582-411d-9eba-7217376a8aa3 /boot ext3 defaults 1 2
和 fdisk -l
[root@localhost ~]# fdisk -l Disk /dev/vda: 9234 MB, 9234180096 bytes, 18035508 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk label type: dos Disk identifier: 0x000b5cce Device Boot Start End Blocks Id System /dev/vda1 * 2048 616447 307200 83 Linux /dev/vda2 616448 18034687 8709120 8e Linux LVM Disk /dev/mapper/centos-root: 8917 MB, 8917090304 bytes, 17416192 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
我有同樣的問題 - 原因是 LVM。如果您看一下,
/var/log/cloud-init.log
您會看到以下條目:cc_growpart.py[DEBUG]: '/' SKIPPED: device_part_info(/dev/mapper/centos_lxopce64v070-root) failed: /dev/mapper/centos_lxopce64v070-root not a partition
所以答案是要麼讓你的根分區成為物理磁碟,要麼放入你自己的增長邏輯。實際上,我更喜歡擁有自己的邏輯,因為它使得擴展根磁碟變得非常容易,而無需調整 OpenStack 大小(這需要重建 VM)。您只需附加一個塊卷,然後將該塊卷添加到 LVM。
所以這是我的程式碼(如果您要添加塊卷並增加 LVM,則程式碼非常相似)。您的程式碼可能僅在根卷組 (
the_root_vgname
) 的名稱上有所不同:the_root_device='/dev/vda' the_dynamic_partition='3' the_dynamic_partition_path="${the_root_device}${the_dynamic_partition}" the_root_vgname='centos_lxopce64v070' the_root_lvname='root' the_root_lvpath="/dev/${the_root_vgname}/${the_root_lvname}" (echo n; echo p; echo $the_dynamic_partition; echo ; echo; echo t; echo $the_dynamic_partition; echo 8e; echo w) | fdisk ${the_root_device} sync; sync; sync partprobe sync; sync; sync pvcreate $the_dynamic_partition_path sync; sync; sync vgextend $the_root_vgname $the_dynamic_partition_path sync; sync; sync lvextend $the_root_lvpath $the_dynamic_partition_path sync; sync; sync xfs_growfs $the_root_lvpath sync; sync; sync