У меня есть сервер CentOS 6 (работающий как виртуальная машина на XenServer), который был настроен предыдущим сотрудником, и на одном из дисков нет разделов. Я увеличил размер диска через интерфейс XenServer, и запуск lsblk показывает новый размер. Однако я не могу расширить диск (используя fdisk) до нового размера.
$ df -h
Filesystem Size Used Avail Use%
/dev/xvda3 1.6G 479M 1.1G 32%
tmpfs 245M 4.0K 245M 1%
/dev/xvda1 113M 59M 48M 56%
/dev/xvda7 485M 2.7M 457M 1%
/dev/xvda2 2.4G 829M 1.5G 36%
/dev/xvda5 2.4G 1.2G 1.1G 53%
**/dev/xvdb 99G 92G 1.8G 99%**
/dev/xvdc 99G 60M 94G 1%
/dev/xvde4 222G 195G 16G 93%
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE
xvda 202:0 0 8G 0 disk
??xvda1 202:1 0 120M 0 part
??xvda2 202:2 0 2.5G 0 part
??xvda3 202:3 0 1.6G 0 part
??xvda4 202:4 0 1K 0 part
??xvda5 202:5 0 2.5G 0 part
??xvda6 202:6 0 768M 0 part
??xvda7 202:7 0 509M 0 part
**xvdb 202:16 0 300G 0 disk **
xvdc 202:32 0 100G 0 disk
xvde 202:64 0 225G 0 disk
??xvde4 202:68 0 225G 0 part
Я неплохо разбираюсь в системе Linux, но я ни в коем случае не эксперт. Я не смог найти ответ на свою дилемму. Возможно ли вообще расширить диск на этом этапе? Заранее спасибо за любую помощь!
решение1
fdisk не расширяетсядиски,он работает только с разделами, а на вашем диске их нет, поэтому нет смысла использовать fdisk.
Поскольку вы уже расширили весь диск (т.е. устройство "xvdb", как показано lsblk) и нет никаких других промежуточных слоев, ваш следующий шаг - расширитьфайловая система, т.е. позволить ему занять доступное ему пространство. Это то, что показывает 'df' (конфигурация файловой системы).
fdisk также не расширяет файловые системы (есличто(это то, что вы имели в виду под «диском»), поэтому здесь также нет смысла использовать fdisk.
Вместо этого, в зависимости от типа файловой системы, вам понадобитсяresize2fs
для ext4 илиxfs_growfs
для XFS, или btrfs filesystem resize
, или чего-то подобного. (Каждая файловая система имеет свой собственный инструмент. Большинство поддерживает онлайн-расширение, хотя некоторые требуют, чтобы файловая система была сначала размонтирована.)
Используйте df -T
или lsblk -f
для определения типа файловой системы.
решение2
Я предлагаю добавить НОВЫЙ ВИРТУАЛЬНЫЙ ДИСК и смонтировать его в месте, где он будет наиболее полезен. Вы можете узнать, как это сделать, поискав "xenserver new virtual disk" в интернете. Я не знаю XenServer, но они все одинаковы... это концепция Linux, и она не имеет ничего общего с вашим хостом виртуализации (XenServer).
Вам нужно выяснить, куда тратится все пространство на вашей установке Linux. Вы, вероятно, уже знаете это. Для моего примера... давайте представим, что это /home..
Войдите в систему как root (также известный как sudo -i).
Сначала смонтируйте новый виртуальный диск с помощью команды mount. Создайте папку с именем "home" в его корне. Вы можете/будете использовать ее
rsync
для копирования файлов из /home/* в "home" на вновь смонтированном диске. Это должно сохранить разрешения.Переименуйте старый /home/ в /oldhome/ на всякий случай, если что-то пойдет не так.
Используйте файл fstab для монтирования нового диска как /home/ и перезагрузите компьютер.
Если все в порядке, от имени пользователя root выполните rd /s /q /oldhome
Я не бог Linux, но я использовал этот метод бесчисленное количество раз, чтобы расширить свое пространство в операционных системах *nix. Если у кого-то есть критика того, как я это сделал, пожалуйста, помогите мне сделать лучший пост. Я был бы рад его исправить.