如何在VMware上扩展CentOS 5分区?


15

我有一台CentOS 5虚拟机,并且磁盘大小增加了20GB。如何初始化和扩展可用空间?

我也尝试加载GParted,但是驱动器已锁定;如何解锁?

在此处输入图片说明

在此处输入图片说明

Answers:


25

您将无法使用GParted,因为文件系统位于LVM上,而GParted不支持该功能。

首先,备份虚拟机。然后从命令行以“ root”身份执行以下操作。

  1. 看来您已经重新启动,但以防万一,请确保内核能够识别更大的磁盘

    echo 1 > /sys/class/scsi_disk/0:0:0:0/device/rescan
    
  2. 使用fdisk调整第二个分区的大小

    fdisk /dev/sda
    p     # print current
    d     # delete
    - 2
    n     # create
    - p   # primary partition
    2     # partition number
    - default first/last cylinders
    t     # change partition id
    - 2
    - 8e (hex code)
    p     # print the current again to verify it's expanded
    w     # write changes
    
  3. 重新启动虚拟机

    shutdown -r now
    
  4. 备份后,调整LVM物理卷的大小

    pvresize /dev/sda2
    
  5. 现在调整LVM逻辑卷的大小(注意:我无法根据屏幕快照来解密您的逻辑卷名称,因此是假设的LogVol00。您可以通过运行确定lvdisplay。)

    lvresize -l +100%FREE /dev/VolGroup00/LogVol00
    
  6. 最后,让我们调整文件系统的大小

    resize2fs -p /dev/VolGroup00/LogVol00
    
  7. 验证文件系统是否更大

    df -h
    
  8. 完成


之后没有重新启动fdisk。在那使用partprobe。SCSI重新扫描很有趣-可以在使用的磁盘上工作吗?
尼尔斯

1
晚会:p我遇到了partprobe无法重新读取正在使用的分区的问题,因此我几乎在所有情况下都重新启动。SCSI重新扫描可以很好地与正在使用的磁盘配合使用。您可以运行dmesg以确认磁盘被视为新大小
TheDude 2012年

遗憾的是,对于xen-pv-disk来说,它没有scsi-rescan。但这是另一个话题...
Nils

1
非常感谢您,您的指示非常有效!
克里斯·哈斯

步骤1(回显和重新扫描)之后我应该寻找什么?如何判断内核是否识别出多余的空间?
杰夫,

4

以下步骤将运行Centos 6 EXT4 VPS的VMWare EXSi 5.5上的分区从12G扩展到了26GB。

1)确定设备名称(默认为/ dev / sda),并通过运行以下命令确认新的大小:

# fdisk -l

2)获取/ dev / sda设备的分区列表:

# ls -al /dev/sda*

brw-rw---- 1 root disk 8, 0 Dec 29 15:32 /dev/sda
brw-rw---- 1 root disk 8, 1 Dec 29 15:32 /dev/sda1
brw-rw---- 1 root disk 8, 2 Dec 29 15:32 /dev/sda2

3)创建新的主分区

# fdisk /dev/sda

Then type:
  n (enter) [create new partition]
  p (enter) [primary partition]
  3 (enter) [next available number from listed /dev/sda partitions in 2)
  (enter)   [start cylinder]
  (enter to use all available physical space) or specify size in +cylinders, +size{K,M,G}
  t (enter) [change partition type]
  3 (enter) [selecting /dev/sda3 partition]
  8e (enter) [this sets partition type to Linux LVM or type L then enter to see list of types] 
  w (enter)

  The partition table has been altered!

4)重新启动Centos 6.X,然后以root特权重新登录

# reboot

5)检查新分区是否准备就绪,并输入“ 8e”:

# fdisk -l

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              64        2089    16264192   8e  Linux LVM
/dev/sda3            2089        3916    14678054   8e  Linux LVM

6)创建物理体积:

# pvcreate /dev/sda3

Physical volume "/dev/sda3" successfully created

7)找出卷组名称:

# vgdisplay

--- Volume group ---
VG Name               vg_app1
...

8)扩展物理体积:

# vgextend vg_app1 /dev/sda3

Volume group "vg_app1" successfully extended

9)将现有的卷组扩展到新的物理卷(可以将+ 100%FREE更改为所需的大小)。由于我们正在扩展根分区,因此指向vg_app1卷组中的lv_root。

# lvextend -l +100%FREE /dev/vg_app1/lv_root

Size of logical volume vg_app1/lv_root changed from 11.63 GiB (2978 extents) to 25.63 GiB (6561 extents).
Logical volume lv_root successfully resized

10)调整逻辑根卷的大小:

# resize2fs /dev/vg_app1/lv_root

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_app1/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/vg_app1/lv_root to 6718464 (4k) blocks.
The filesystem on /dev/vg_app1/lv_root is now 6718464 blocks long.

注意:如果它是Red Hat虚拟机,请使用ext2online而不是resize2fs。

11)检查可用空间:

# df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/vg_app1-lv_root
                      26G   10G   14G  42% /
tmpfs                 9.8G     0  9.8G   0% /dev/shm
/dev/sda1             477M   88M  364M  20% /boot

2

简单。以root用户身份进入VM。键入“ fdisk -l”-如果您已经看到新的磁盘大小-很好。

如果不是,请尝试 partprobe -如果仍然看不到新磁盘大小,请重新启动。

现在 fdisk /dev/sda

  1. 写下您的第二个分区的启动柱面。
  2. “删除”第二部分
  3. 重新创建第二个分区,相同的起始圆柱,最后一个圆柱结束
  4. 将重新创建的分区的类型设置为8e(LVM)
  5. 写下更改并退出fdisk
  6. partprobe
  7. pvresize /dev/sda2

现在,您的VG VolGroup00具有20 GB的更多空间。做任何你喜欢的事。就像在物理系统上一样(例如,调整LV的大小,然后调整FS的大小)。


echo 1> / sys / class / scsi_disk / 0 \:0 \:0 \:0 / device / rescan无需重新启动即可执行重新扫描魔术
andrej 2016年

@andrej即使磁盘正在使用中?
尼尔斯

是的,这是控制器方面的低级魔术,因此它也适用于已安装的光盘。您只需要确保扩大了驱动器,而不必从中减去空间。
andrej

2

下载Gparted live CD ISO。然后将ISO附加到CentOS并从实时cd引导(转到虚拟机设置,选择“ CD / DVD”,然后从右侧面板中选择“使用ISO”)。然后选择要调整大小的分区。单击分区菜单(顶部菜单栏),然后单击“调整大小”。然后从“编辑”菜单中选择“应用所有操作”。


我加载了,但是驱动器上有锁定图标。.我附加了图像
Andrew


谢谢!+1类似此Particion Magic的应用程序建议。
jstuardo 2015年

0

在这里,我将使用一个示例分区将磁盘从5GB扩展到7GB,而不会丢失数据。您可以根据可用空间进行更改。

在增加磁盘之前,我从Linux VM中获取了以下详细信息:

# df -h
 Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test
# fdisk -s /dev/sdb
Disk /dev/sdb: 5368 MB, 5368709120 bytes
 255 heads, 63 sectors/track, 652 cylinders
 Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
 /dev/sdb1               1         652     5237158+  83  Linux

现在关闭虚拟机。

现在,我/dev/sdb将从命令提示符中增加VMware的现有虚拟磁盘()。注意:仅在关闭虚拟机电源后才能执行此任务。

转到虚拟磁盘位置。

# vmware-vdiskmanager -x  7Gb RedHatEnterprise_Linux_4-0.vmdk

现在它将把虚拟磁盘增长到7Gb

现在您需要打开虚拟机电源。使用PuTTY或控制台作为root用户登录到VM。

# df -h
Filesystem            Size  Used Avail Use% Mounted on
 /dev/sda3             6.8G  2.1G  4.5G  32% /
 /dev/sda1              99M   12M   83M  13% /boot
 none                  252M     0  252M   0% /dev/shm
 /dev/sdb1             5.0G   39M  4.7G   1% /mnt/test

它仍然显示旧尺寸。卸载要增加的分区。

# umount /dev/sdb1

在磁盘上运行文件系统修复

# fsck -n /dev/sdb1

现在是goig,它从磁盘上删除日志以使其成为ext2文件系统。

# tune2fs -O ^has_journal /dev/sdb1

现在开始分区/dev/sdb以将增加的空间分配给/dev/sdb1。注意:不要惊慌,您在这里不会丢失数据。

我要删除现有的文件/dev/sdb1并重新创建可用的可用空间。

# fdisk /dev/sdb
Command (m for help): m
Command action
a   toggle a bootable flag
b   edit bsd disklabel
c   toggle the dos compatibility flag
d   delete a partition
l   list known partition types
m   print this menu
n   add a new partition
o   create a new empty DOS partition table
p   print the partition table
q   quit without saving changes
s   create a new empty Sun disklabel
t   change a partition’s system id
u   change display/entry units
v   verify the partition table
w   write table to disk and exit
x   extra functionality (experts only)

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         652     5237158+  83  Linux

Command (m for help): d
Selected partition 1

Command (m for help): n
Command action
e   extended
p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-913, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-913, default 913):
Using default value 913

Command (m for help): p
Disk /dev/sdb: 7516 MB, 7516192768 bytes
255 heads, 63 sectors/track, 913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         913     7333641   83  Linux

Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

现在,重新启动Linux计算机以使分区生效(我们也可以使用partprobe,强烈建议重新启动计算机)。

# shutdown now -r

现在再次检查扩展文件系统,如果跳过此步骤,resize2fs命令将建议运行它。

# e2fsck -f /dev/sdb1
e2fsck 1.35 (28-Feb-2004)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdb1: 13/655360 files (7.7% non-contiguous), 22121/1309289 blocks

现在调整文件系统的大小。

# resize2fs /dev/sdb1
resize2fs 1.35 (28-Feb-2004)
Resizing the filesystem on /dev/sdb1 to 1833410 (4k) blocks.
The filesystem on /dev/sdb1 is now 1833410 blocks long.

现在检查文件系统。

# fsck -n /dev/sdb1
fsck 1.35 (28-Feb-2004)
e2fsck 1.35 (28-Feb-2004)
/dev/sdb1: clean, 13/917504 files, 30538/1833410 blocks

现在使用ext3格式重新创建分区。

# tune2fs -j /dev/sdb1
tune2fs 1.35 (28-Feb-2004)
Creating journal inode: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

重新启动Linux计算机一次即可有效地使用ext3文件系统。

# shutdown -r now

再次使用root特权登录Linux框。现在您可以找到将分区增加到7 GB的分区。

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda3             6.8G  2.1G  4.5G  32% /
/dev/sda1              99M   12M   83M  13% /boot
none                  252M     0  252M   0% /dev/shm
/dev/sdb1             6.9G   39M  6.7G   1% /mnt/test

为什么删除然后恢复日记?这不是必需的,ext3文件系统可以像ext2文件系统一样进行扩展。此外,您遗漏了一大难题:要扩展的分区位于LVM上。
吉尔斯(Gillles)“所以-别再邪恶了”

0

我刚刚在VMware中使用CentOS 6.4进行了此操作。我发现答案1是正确的,但是缺少一步。

在Gparted中,我的锁图标也有。

在具有锁图标的分区所在的行上,右键单击并选择“停用”。那使锁消失了。

然后,您可以右键单击并更改分区大小。

然后应用更改。

然后右键单击并选择“激活”。


0

通过将-r开关添加到,可以使步骤5和6成为一体lvresize。这将使lvresize运行resize2fs与所需的参数自动:

lvresize -r -l +100%FREE /dev/VolGroup00/LogVol00

欢迎来到* nix StackExchange!

0

对于VMWare上的CentOS 6.6,我做了以下操作,将其从30 GB增加到40 GB(请注意,我没有使用LVM,只是常规的本地linux分区(Id 83)):

注意:如果丢失数据,请先备份VM。如果一切顺利,您就不会丢失数据。

  1. 在我编辑VM之前,VMWare给了我一个GUI,以启动它来调整VM可用的大小。我使用了它,并将其扩展到40 GB。
  2. 然后,我启动了CentOS,并以root身份运行了“ fdisk -l”。我可以看到新空间。然后,我运行'df -h'验证我的旧分区是否仍然存在。
  3. 然后,我运行“ cfdisk / dev / sda”,并获得了显示我的分区的文本GUI。在我的情况下,我要调整大小的分区是/ dev / sda3,它是最后一个分区。
  4. 然后,我使用cfdisk删除分区,然后使用所有可用空间创建一个新分区。我写下了更改并退出了。
  5. 然后,我重新启动了VM(立即关闭-r)。
  6. 重新启动后,我使用了“ resize2fs / dev / sda3”,其中/ dev / sda3是我重新创建的分区。这会自动为我完成调整大小。
  7. 现在使用“ df -h”,我看到了新的完整尺寸。

从此页面和http://positon.org/resize-an-ext3-ext4-partition的答案组合中找到的信息


0

另一种方法是在整个磁盘而不是分区上创建一个LVM。

在这种情况下,您可以使用以下方法热添加磁盘

blockscan --rereadpt /dev/<PV disk
pvresize /dev/<PV disk>
# The associated VG is now resized
lvresize /dev/mapper/<LV> -r -l +100%FREE

0

有时候你需要做

echo "- - -" >  /sys/class/scsi_host/host<n>/scan

这取决于您是要创建新磁盘还是扩展现有磁盘,以决定需要哪种类型的重新扫描。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.