Как расширить раздел linux parted
контекст
У меня есть удаленная виртуальная машина 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. Если это так, то как мне расширить раздел на удаленной виртуальной машине Azure?
Примечание. Я подключаюсь только к виртуальной машине, поэтому не могу загрузить внешнюю программу, использовать графический интерфейс или просто смонтировать диск на другую машину.
ОС детали
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
- Как увеличить размер раздела в Linux(Ubuntu 9.04)?
- Как расширить раздел Linux ext3?
- Как расширить раздел Mint Linux на конфигурацию двойной загрузки с Windows 8.1?
- Как изменить размер расширенного раздела?
Использует VMware
Использует внешние инструменты (загрузочный диск) Как расширить основной раздел (/dev/sda1) в Linux?
2 ответа
Вы можете использовать Gparted, так как вы используете CentOS, вы можете установить его:
yum install epel-release
yum install gparted
Вот некоторая информация о том, как его использовать:
http://gparted.org/display-doc.php%3Fname%3Dmoving-space-between-partitions
Вы хотите продлить /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
Если да, мы можем использовать оболочку для расширения /dev/sda2
до 100г. (сентос 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% /
Более подробную информацию о расширении ОС диска смотрите по этой ссылке.