1

контекст

У меня есть удаленная виртуальная машина Linux CentOS в Azure, на которой размещена база данных MYSQL. Я только что закончил обновление размера диска с 30 ГБ до 100 ГБ. Проблема в том, что дополнительное пространство не было добавлено в раздел.

$ parted

(parted) print free
Model: Msft Virtual Disk (scsi)
Disk /dev/sda: 107GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system     Flags
        32.3kB  1049kB  1016kB           Free Space
 1      1049kB  31.2GB  31.2GB  primary  ext4            boot
 2      31.2GB  32.2GB  1049MB  primary  linux-swap(v1)
        32.2GB  107GB   75.2GB           Free Space

$ lsblk

NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0      2:0    1    4K  0 disk
sda      8:0    0  100G  0 disk
├─sda1   8:1    0   29G  0 part /
└─sda2   8:2    0 1000M  0 part
sdb      8:16   0   50G  0 disk
└─sdb1   8:17   0   50G  0 part /mnt/resource

$ df

Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda1       29822848 25241412   3043440  90% /
devtmpfs         1752756        0   1752756   0% /dev
tmpfs            1761624        0   1761624   0% /dev/shm
tmpfs            1761624     8440   1753184   1% /run
tmpfs            1761624        0   1761624   0% /sys/fs/cgroup
/dev/sdb1       51472864    53276  48781868   1% /mnt/resource
tmpfs             352328        0    352328   0% /run/user/1000

Вопрос

Очевидно, мне нужно расширить раздел 1 (/dev/sda), чтобы включить свободное пространство. Используя этот пост, я попробовал

sudo resize2fs /dev/sda 100G

но это отвергается с

Device or resource busy while trying to open /dev/sda`.

Я думаю, это означает, что я не могу расширить раздел, пока он используется, что имеет смысл для меня, учитывая мой опыт работы с Windows. Если это так, то как мне расширить раздел на удаленной лазурной виртуальной машине?

Примечание. Я подключаюсь только к виртуальной машине, поэтому не могу загрузить внешнюю программу, использовать графический интерфейс или просто смонтировать диск на другой машине.

ОС детали

  Static hostname: PMCTMYSQL
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 99f30b6b81444d47a888f0313c428bd8
           Boot ID: 444cc3a5a22b4e53a947e06af2d9b4d2
    Virtualization: microsoft
  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-327.36.3.el7.x86_64
      Architecture: x86-64

Больше исследований

Я проверил другие темы, предложенные SU, но они не применяются по разным причинам:

Предлагает инструменты GUI

  1. Как увеличить размер раздела в Linux (Ubuntu 9.04)?
  2. Как расширить раздел Linux ext3?
  3. Как расширить раздел Mint Linux на конфигурацию двойной загрузки с Windows 8.1?
  4. Как изменить размер расширенного раздела?

Использует VMware

  1. Как увеличить размер раздела в Linux (Ubuntu 9.04)?

Использует внешние инструменты (загрузочный диск) Как расширить основной раздел (/dev/sda1) в Linux?

  1. https://www.howtoforge.com/linux_resizing_ext3_partitions

2 ответа2

1

Вы можете использовать Gparted, так как вы используете CentOS, вы можете установить его:

yum install epel-release
yum install gparted

Вот некоторая информация о том, как его использовать:

http://gparted.org/display-doc.php%3Fname%3Dmoving-space-between-partitions

0

Вы хотите расширить /dev/sda2 до 100G? как это:

[root@jason ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs       100G  1.2G   99G   2% /
devtmpfs       devtmpfs  828M     0  828M   0% /dev
tmpfs          tmpfs     839M     0  839M   0% /dev/shm
tmpfs          tmpfs     839M  8.3M  830M   1% /run
tmpfs          tmpfs     839M     0  839M   0% /sys/fs/cgroup
/dev/sda1      xfs       497M   62M  436M  13% /boot
/dev/sdb1      ext4       69G   53M   66G   1% /mnt/resource
tmpfs          tmpfs     168M     0  168M   0% /run/user/1000

Если да, мы можем использовать shell для расширения /dev/sda2 до 100G. (сентос 7.3)

[root@jason ~]# fdisk /dev/sda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): u
Changing display/entry units to cylinders (DEPRECATED!).

Command (m for help): p

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
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 label type: dos
Disk identifier: 0x000bd020

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2              64        3917    30944256   83  Linux

Command (m for help): d
Partition number (1,2, default 2): 2
Partition 2 is deleted

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (2-4, default 2): 2
First cylinder (64-13054, default 64): 
Using default value 64
Last cylinder, +cylinders or +size{K,M,G} (64-13054, default 13054): 
Using default value 13054
Partition 2 of type Linux and of size 99.5 GiB is set

Command (m for help): a
Partition number (1,2, default 2): 2

Command (m for help): p

Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 sectors
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 label type: dos
Disk identifier: 0x000bd020

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          64      512000   83  Linux
/dev/sda2   *          64       13054   104343231   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@jason ~]# reboot

После завершения перезагрузки мы должны использовать эту команду, чтобы расширить ее xfs_growfs -d /dev/sda2(centos 7), centos 6 мы должны использовать sudo resize2fs /dev/sda2

[root@jason ~]# xfs_growfs -d /dev/sda2
meta-data=/dev/sda2              isize=512    agcount=4, agsize=1934016 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=7736064, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=3777, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 7736064 to 26085807
[root@jason ~]# df -Th
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/sda2      xfs       100G  1.2G   99G   2% /

Более подробную информацию о расширении ОС диска смотрите по этой ссылке.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .