Содержание
- Oracle Linux 6 : ‘partprobe’ command shows «WARNING: the kernel failed to re-read the partition table on /dev/sdd (Device or resource busy)» . (Doc ID 2308515.1)
- Applies to:
- Symptoms
- Changes
- Cause
- To view full details, sign in with your My Oracle Support account.
- Don’t have a My Oracle Support account? Click to get started!
- Cannot expand VMDK in CentOS VM: Re-reading the partition table failed, error 16
- Ensure AV Gear Plays Nice on the Corporate Network
- 2 Replies
- Read these next.
- poor wifi, school’s third floor
- Need help crafting a job posting for an IT Pro
- Snap! — AI Eye Contact, Mine Batteries, Headset-free Metaverse, D&D Betrayal
- Spark! Pro series – 13th January 2023
- sr_maks
- привет из хайтек
- Расширение дисков CentOS 7
- KVM: Как увеличить/уменьшить размер диска виртуальной машины?
- Увеличение диска виртуальной машины KVM
- Расширение виртуального диска со стороны KVM
- Расширение раздела в виртуальной машине с Linux CentOS
- Увеличение диска в гостевой Windows Server
- Как уменьшить размер виртуального диска в KVM?
- Уменьшение KVM диска с помощью утилиты qemu
- Уменьшение виртуального диска с подменой образа
- Форматы дисков KVM и сжатие диска в qcow2 формате
Oracle Linux 6 : ‘partprobe’ command shows «WARNING: the kernel failed to re-read the partition table on /dev/sdd (Device or resource busy)» . (Doc ID 2308515.1)
Last updated on MAY 13, 2020
Applies to:
Symptoms
On Oracle Linux 6, after the LVM disk space and underlying storage has been extended up to few a gigabytes, subsequently trying to extend the same LVM is unsuccessful after a new partition has been created.
The command ‘partprobe’ is unable to run and attempting an online resize and extending the partition which is mounted as Ext4 filesystem fails as in the example below:
After successfully creating PV and VG mounted the FS/volume group. Then created New Partition as /dev/sdd3 and then tried partprobe with old File System mounted :
——— New partition /dev/sdd3 is not reflected ———
Changes
Cause
To view full details, sign in with your My Oracle Support account.
Don’t have a My Oracle Support account? Click to get started!
In this Document
My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.
Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. пїЅ Oracle | Contact and Chat | Support | Communities | Connect with us | |
|
| Legal Notices | Terms of Use
Источник
Cannot expand VMDK in CentOS VM: Re-reading the partition table failed, error 16
I expanded the VMDK from 60 to 120 GBs but the guest OS isn’t having it. I can see Partition 2 get set to the size of 119, but then I get this error in fdisk:
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)
The «error 16: Device or resource busy» suggested I need to umount sda, but it is not mounted:
Here’s the full output:
Any ideas on this? TIA
Ensure AV Gear Plays Nice on the Corporate Network
If it’s already telling you to reboot to reload the partition table (this happens sometimes on older Linux systems/older kernels) then this procedure I wrote about a while probably won’t work either but it’s worth a shot, see if you can trigger a rescan.
Rather than manually editing partitions with fdisk, you can use newer tools such as «growpart» as well which take away some of the guesswork and accidentally getting the sectors wrong with typos of math errors.
If it’s already telling you to reboot to reload the partition table (this happens sometimes on older Linux systems/older kernels) then this procedure I wrote about a while probably won’t work either but it’s worth a shot, see if you can trigger a rescan.
Rather than manually editing partitions with fdisk, you can use newer tools such as «growpart» as well which take away some of the guesswork and accidentally getting the sectors wrong with typos of math errors.
Thank you, GerardBeekmans ! Not sure why, but I ran my final 3x commands (from the SuperUser post) and it worked:
- local_offer Tagged Items
GerardBeekmans
This topic has been locked by an administrator and is no longer open for commenting.
To continue this discussion, please ask a new question.
Read these next.
poor wifi, school’s third floor
I work as a help desk technician at a high school for a school district. Teachers/students on the building’s third floor have been reporting poor wifi, with their Chromebooks/laptops etc experiencing slow connectivity and random disconnections. We hav.
Need help crafting a job posting for an IT Pro
I’d really appreciate some thoughts and advice. I’m looking to hire an IT pro to be our resident go-to for all things IT (device support, SQL Server, network admin, etc) but who also is interested in learning — or even has some experience in — the.
Snap! — AI Eye Contact, Mine Batteries, Headset-free Metaverse, D&D Betrayal
Your daily dose of tech news, in brief. Welcome to the Snap! Flashback: January 13, 1874: Adding Machine Patented (Read more HERE.) Bonus Flashback: January 13, 1990: Astronauts awakened to the song Attack of the Killer Tomatoes (Read mor.
Spark! Pro series – 13th January 2023
Happy Friday the 13th! This day has a reputation for being unlucky, but I hope that you’ll be able to turn that around and have a great day full of good luck and good fortune. Whether you’re superstitious or not, .
Источник
sr_maks
привет из хайтек
После создания fdisk нового раздела сообщение:
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.
Syncing disks .
Это означает, что созданный раздел будет недоступен для манипуляций с ним.
Например — fdisk показывает наличие созданного раздела, но создание файловой структуры ни в какую:
fdisk -l
Disk /dev/sda: 298.9 GB, 298999349248 bytes
255 heads, 63 sectors/track, 36351 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 2636 20972857+ 83 Linux
/dev/sda3 2637 3158 4192965 82 Linux swap / Solaris
/dev/sda4 3159 36351 266622772+ 83 Linux
mkfs.ext3 /dev/sda4
mke2fs 1.39 (29-May-2006)
Could not stat /dev/sda4 — No such file or directory
The device apparently does not exist; did you specify it correctly?
Для решения данной проблемы без перезагрузки — partprobe.
partprobe
mkfs.ext3 /dev/sda4
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
33341440 inodes, 66655693 blocks
3332784 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
2035 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information:
done
This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Источник
Расширение дисков CentOS 7
Появилась необходимость увеличения размера виртуальных дисков на виртуальной машине с CentOS 7. Задача простая, но все мануалы которые находятся поиском в google почему-то не работают. На деле всё достаточно просто, делается буквально несколькими командами.
Итак, имеется два виртуальных диска, системный – 16Gb, смонтированный – 5Gb. Смотрим список всех разделов, их размеры и процент использования
Средствами гипервизора увеличиваем размеры дисков, системный – 20Gb, смонтированный – 15Gb.
Смотрим таблицы разделов
Размеры дисков увеличились, осталось увеличить размеры разделов. Сначала изменим смонтированный диск – в конкретном случае sdb1. Первым делом размонтируем его, потом удалим имеющийся раздел (данная операция не затрагивает хранящиеся данные на диске) и создадим его заново большего размера
Монтируем диск обратно, перечитаем таблицу разделов и проверяем размер интересующего раздела
Теперь вторая половина задания, увеличим системный раздел – в текущей конфигурации sda3. Смотрим таблицу разделов, удаляем нужный, создаём его заново – большего размера
Как видно – перечитать таблицу разделов не удалось, т.к. раздел используется системой. Для внесения изменений необходима перезагрузка операционной системы. После перезагрузки осталось расширить раздел
Проблема в том, что resize2fs умеет работать только с ext2-4 файловыми системами, а CentOS7 по умолчанию создаёт разделы в файловой системе xfs. Решением является использование команды xfs_growfs
В результате получилось увеличить раздел sda3 с 14Gb до 19Gb, а монтируемый раздел sdb1 с 4,8Gb до 15Gb.
Источник
KVM: Как увеличить/уменьшить размер диска виртуальной машины?
В этой статье мы поговорим об изменении размера дисков виртуальной машины KVM, рассмотрим используемые форматы виртуальных дисков. Покажем, как правильно увеличить диск виртуальной машины в гипервизоре KVM на Linux без потери данных, а также обсудим варианты уменьшения размеров дисков.
Увеличение диска виртуальной машины KVM
Расширение виртуального диска со стороны KVM
Для того, чтобы проводить работы с диском, виртуальная машина должна быть отключена, иначе мы не сможем что-либо сделать. Рассмотрим пример с увеличением диска размер которого изначально был 20Гб.
Чтобы посмотреть параметры диска виртуальной машины KVM, воспользуйтесь командой:
qemu-img info /путь_до_диска
Вывод команды будет примерно такой:
Мы видим, что у нас есть два поля которые указывают на размер, это virtual_size и disk_size:
- virtual_size – размер виртуального диска, указанный при создании или расширении диска (в этом примере максимальный размер диска – 20 Гб);
- disk_size — размер файла диска в текущий момент, т.е. сколько сейчас занимает образ диска места на физическом сервере (относится только к формату qcow). В нашем пример виртуальный диск занимает всего 1,6 Гб на хранилище.
И сразу о форматах. Я рекомендую при создании виртуальных машин на KVM использовать формат диска qcow2, а не raw. Чуть позже я объясню почему.
Следующим шагом расширим диск виртуальной машины, на 5Gb (для корректного расширения диска у виртуальной машины не должно быть снапшотов!).
# qemu-img resize /путь до диска +5G
Если сразу проверить вывод информации об образе диска, мы увидим, что он расширился:
# qemu-img info /путь_до_диска
Часть работы мы сделали, но требуется и проведение работ со стороны виртуальной машины в гостевой ОС. Далее мы покажем, как увеличить размер диска в гостевых CentOS 7 и Windows Server 2012.
Расширение раздела в виртуальной машине с Linux CentOS
После расширения диска со стороны сервера, нужно запустить виртуальную машину и подключиться к ней по ssh. Все работы будут проводиться с помощью утилиты управления разделами жестких дисков fdisk.
После подключения к серверу, проверяем наличие нашего дополнительно подключенного места:
На скриншоте видно, раздел /dev/vda2 имеет размер 20Gb, а доступное место на диске у нас больше.
Подправим этот момент и расширим раздел /dev/vda2 до максимального объема:
После чего нам нужно сделать рестарт виртуальной машины и выполнить команду для применения расширения диска:
В итоге мы получили расширенный раздел /dev/vda2. Теперь по порядку, что именно мы сделали:
- fdisk /dev/vda — запустили утилиту fdisk подключившись к разделу /dev/vda
- /d — удаляем раздел, по умолчанию это раздел 2 который нам и нужен, поэтому в следующем пункте жмем просто Enter
- /n – создаем новый раздел, в следующем пункте так же просто жмем Enter или вводим p, далее Enter так как создаваемый раздел по умолчанию будет 2.
- При указании первого и последнего сектора так же жмем просто Enter, если мы хотим расширить раздел до максимума, если вы хотите указать конкретный размер, в последнем секторе указывайте размер диска как указано в меню +size Размер не может быть меньше, чем был ранее!
- /w — применяем наши настройки.
После перезагрузки проверим диск командой:
В некоторых источниках для выполнения данной процедуры указывают команду:
Но с файловой системой xfs это не работает!
Работы по расширению диска на виртуальной машине с ОС CentOS 7 закончены.
Увеличение диска в гостевой Windows Server
Подключаемся к виртуальной машине через rdp или VNC и выполняем работы по расширению диска.
Откройте Server Manager -> Tools -> Computer Management;
В открывшемся окне выбираем в меню Disk Management, после чего у вас должны отобразиться все ваши диски и неразмеченное пространство, которые мы добавили со стороны гипервизора KVM;
Выбираем нужный диск и нажимаем Extended Volume;
По умолчанию для увеличения размера диска будет предложено все доступное место;
Нажимаем «далее» и завершаем расширение. После данной процедуры, ваш раздел в системе должен будет расшириться;
Хотелось бы добавить, что перед процедурой расширения диска для виртуальной машины, я советую выполнять резервное копирование самого диска. Остановите виртуальную машину и скопируйте образ диска в директорию для бэкапа или в любую директорию, в которой есть свободное место. Если в ходе работ, что-то пойдет не так, вы всегда сможете вернуть образ виртуального диска из бэкапа.
Как уменьшить размер виртуального диска в KVM?
В своей работе, ранее я довольно часто сталкивался с данным вопросом, но к сожалению, безболезненно уменьшить диск на виртуальной машине в KVM нельзя! Единственный приемлемый размер уменьшения размер диска виртуальной машины KVM на физическом хранилище – его сжатие через конвертацию.
В интернете фигурирует много статей, якобы благодаря которым вы можете уменьшить размер диска на виртуальной машине, но это не работает.
Я приведу несколько примеров, на которые я натыкался и которые лично мною были проверены.
Уменьшение KVM диска с помощью утилиты qemu
На ряде ресурсов описаны действия, выполняемые с помощью утилиты qemu. В них предлагается уменьшить размер диска виртуальной машины с помощью команды:
qemu-img resize /путь_до_диска -5G — уменьшаем диск на 5G
Или такой вариант с указанием конкретного размера:
qemu-img resize /путь_до_диска 25G — указываем размер диска в 25G
Что происходит после выполнения данной команды? Запускаем сервер и конечно система не грузится:
Я пробовал сначала уменьшить раздел из-под системы с помощью утилиты fdisk, но в таком случае, система так же перестает загружаться, даже если вы пропустите шаг уменьшения диска с физического сервера и это логично. Раздел который мы уменьшаем, системный и соответственно ОС перестает загружаться, так как при уменьшении диска, информация по всей видимости уничтожается.
Уменьшение виртуального диска с подменой образа
Уже не такой распространенный в инструкциях вариант — это уменьшение диска, с подменой на старый. То есть, вы создаете новую виртуальную машину с нужным вам размером диска. После чего, подменяете старый образ диска в новый образ и судя по описанию статей в разных источниках, это работает. Я так же сделал проверку и это сломало файловую систему, как и в первом варианте. Я приведу пример команды:
virt-resize /старый_образ_диска /новый_образ_диска
Приводились так же варианты, с конвертацией диска с формата raw в формат qcow2, НО я изначально создаю машины в данном формате и объясню почему.
Форматы дисков KVM и сжатие диска в qcow2 формате
В самом начале статьи, я упомянул про эти два формата.
raw – в переводе «сырой». Преимущество формата, максимальная производительность, универсальность формата. Минусов масса, основные это:
- Диск занимает все дисковое пространство на физическом сервере, которое ему выделили;
- Нельзя создать снапшоты.
Qcow2 – это родной формат гипервизора QEMU, а так же QEMU-KVM. Это максимально удобный формат виртуального диска из всех поддерживаемых в KVM. Образ диска увеличивается по мере накопления данных на виртуальной машине, поддерживаются снапшоты.
Чем хорош формат qcow2? Вам в принципе не нужно уменьшать размер виртуального диска, так как диск занимает на сервере, ровно столько, сколько места там занято. Если же у вас данные на сервере постоянно перезаписываются и бывает такое, что диск «распух», его можно с легкостью сжать. Рассмотрим такой вариант. Я забью нулями некоторое дисковое пространство и после чего удалю файл:
dd if=/dev/zero of=/mytempfile
rm -rf /mytempfile
При проверке с сервера, образ диска сначала весил 2.4G после чего расширился до 5.9G:
# du -sh /путь_образа
# du -sh /путь_образа
То есть после удаления информации на виртуальной машине, диск обратно не сжался. Чтобы файл диска получил актуальный размер, я использую следующий метод:
Бэкапим файл диска, останавливаем виртуальную машину и после чего выполняем следующие действия:
qemu-img convert -O qcow2 /старый_образ /новый_образ
После чего можно проверить размеры двух дисков:
# du -sh /новый_диск
# du -sh /старый_диск
Как видим, размер сжатого диска 1.6G. Переименуем новый образ диска в нужный нам и запустим виртуальную машину:
Контрольная проверка с сервера:
# du -sh /образ_диска
Способ рабочий. За все время его использования, ни разу файловая система на виртуальной машине не умирала. Но настоятельно рекомендую перед подобными работами, создавать копию диска, если не хотите потерять данные.
Это все, что я хотел в данной статье рассказать. Если у кого-то из посетителей сайта есть рабочий способ по уменьшению диска на KVM, именно уменьшения (не сжатие) и именно рабочий, предлагайте свои варианты и я обязательно их протестирую.
Источник
Issue
- How to create a new partition in RHEL 7 without reboot ?
- Disk
/dev/sdX
is being used for system partition, for example for/boot
and/ (root)
. How to create a new partion on it without rebooting the system. - While creating a new partition with
fdisk
command, following error is seen. However, partition gets created and could be used.
[root@hostname ~]# 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): p
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x0004886a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 23570431 11272192 8e Linux LVM
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (3,4, default 3): 3
First sector (23570432-41943039, default 23570432):
Using default value 23570432
Last sector, +sectors or +size{K,M,G} (23570432-41943039, default 41943039): +2G
Partition 3 of type Linux and of size 2 GiB is set
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@hostname ~]# partprobe
[root@hostname ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x0004886a
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1026047 512000 83 Linux
/dev/sda2 1026048 23570431 11272192 8e Linux LVM
/dev/sda3 23570432 27764735 2097152 83 Linux
[root@hostname ~]# pvcreate /dev/sda3
Physical volume "/dev/sda3" successfully created
[root@hostname ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel_hostname lvm2 a-- 10.75g 4.00m
/dev/sda3 lvm2 a-- 2.00g 2.00g
- For RHEL 6, when the above mentioned error is seen, the partition table was not read by partprobe.
Environment
- Red Hat Enterprise Linux 7
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.
Current Customers and Partners
Log in for full access
Log In
I expanded the VMDK from 60 to 120 GBs but the guest OS isn’t having it. I can see Partition 2 get set to the size of 119, but then I get this error in fdisk:
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)
I’m running my steps exactly from my old SU post here (from the last time I did this exact procedure):
https://superuser.com/questions/1449834/cannot-seem-to-expand-dev-mapper-centos-root-lv-in-centos-7-… Opens a new window
The «error 16: Device or resource busy» suggested I need to umount sda, but it is not mounted:
Here’s the full output:
BASH
root@CentOS-7:~# 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): d Partition number (1,2, default 2): Partition 2 is deleted Command (m for help): p Disk /dev/sda: 128.8 GB, 128849018880 bytes, 251658240 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: 0x000b14c7 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): Using default response p Partition number (2-4, default 2): First sector (2099200-251658239, default 2099200): Using default value 2099200 Last sector, +sectors or +size{K,M,G} (2099200-251658239, default 251658239): Using default value 251658239 Partition 2 of type Linux and of size 119 GiB is set Command (m for help): t Partition number (1,2, default 2): Hex code (type L to list all codes): 8e Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): wq 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) root@CentOS-7:~# umount /dev/sda umount: /dev/sda: not mounted
В предыдущем посте я писал о проблеме неправильно распределённого ЖД и уменьшении размера с корневой директорией. На этот раз раберёмся с LVM (по мотивам этой статьи).
В отличии от предыдущего раза, мне не нужен установочный диск Debian, т.к. LVM можно создать на работающей системе.
После предыдущих экспериментов мне достались следующие разделы:
> sudo fdisk -lc /dev/sda
Disk /dev/sda: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
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 identifier: 0x00049f1f
Device Boot Start End Blocks Id System
/dev/sda1 * 1 263 2109440 83 Linux
/dev/sda2 1998 2089 731137 5 Extended
/dev/sda3 263 1998 13934591 83 Linux
/dev/sda5 1998 2089 731136 82 Linux swap / Solaris
Partition table entries are not in disk order
Для чистоты эксперимента, я смело могу удалять всё, кроме sda1.
Для начала отключим существующий swap (для начала проверим состояние):
> cat /proc/swaps
Filename Type Size Used Priority
/dev/sda5 partition 731128 0 -1
Всё нормально, в swap нет данных, можно отключать:
> sudo swapoff /dev/sda5
Проверяем, действительно ли отключен (следующая команда аналогична cat /proc/swaps):
> swapon -s
Filename Type Size Used Priority
Удаляем из файла /etc/fstab строку:
UUID=4771bdd4-e219-4b8f-920a-9d5460b47ff6 none swap sw 0 0
Удаляем разделы:
> sudo fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).
Command (m for help): c
DOS Compatibility flag is not set
Command (m for help): u
Changing display/entry units to sectors
Command (m for help): d
Partition number (1-5): 2
Command (m for help): d
Partition number (1-4): 3
Command (m for help): p
Disk /dev/sda: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders, total 33554432 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 identifier: 0x00049f1f
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 4220927 2109440 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: Устройство или ресурс занято.
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.
Для того, чтобы изменения вступили в силу, необходимо перезагрузиться.
Всю не размеченную область я отдам под LVM:
> sudo fdisk /dev/sda
[sudo] password for sabo:
WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to
switch off the mode (command ‘c’) and change display units to
sectors (command ‘u’).
Command (m for help): c
DOS Compatibility flag is not set
Command (m for help): u
Changing display/entry units to sectors
Command (m for help): p
Disk /dev/sda: 17.2 GB, 17179869184 bytes
189 heads, 54 sectors/track, 3287 cylinders, total 33554432 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 identifier: 0x00049f1f
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 4220927 2109440 83 Linux
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First sector (4220928-33554431, default 4220928):
Using default value 4220928
Last sector, +sectors or +size{K,M,G} (4220928-33554431, default 33554431):
Using default value 33554431
Command (m for help): t
Partition number (1-4): 2
Hex code (type L to list codes): 8e
Changed system type of partition 2 to 8e (Linux LVM)
Command (m for help): p
Disk /dev/sda: 17.2 GB, 17179869184 bytes
189 heads, 54 sectors/track, 3287 cylinders, total 33554432 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 identifier: 0x00049f1f
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 4220927 2109440 83 Linux
/dev/sda2 4220928 33554431 14666752 8e Linux LVM
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: Устройство или ресурс занято.
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.
Обратите внимание, что я установил тип раздела 8e (Linux LVM).
Теперь необходимо установить ПО для работы с LVM:
> sudo aptitude install lvm2
Следующие НОВЫЕ пакеты будут установлены:
lvm2
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 448 kB архивов. После распаковки 1 077 kB будет занято.
Получено 448 kБ в 1с (309 kБ/с)
Выбор ранее не выбранного пакета lvm2.
(Чтение базы данных … на данный момент установлено 39064 файла и каталога.)
Распаковывается пакет lvm2 (из файла …/lvm2_2.02.66-5_amd64.deb)…
Обрабатываются триггеры для man-db …
Настраивается пакет lvm2 (2.02.66-5) …
Setting up LVM Volume Groups Reading all physical volumes. This may take a while…
No volume groups found
No volume groups found
No volume groups found
.
update-initramfs: deferring update (trigger activated)
Обрабатываются триггеры для initramfs-tools …
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
Перезагружаемся.
> sudo fdisk -lc /dev/sda
Disk /dev/sda: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
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 identifier: 0x00049f1f
Device Boot Start End Blocks Id System
/dev/sda1 * 1 263 2109440 83 Linux
/dev/sda2 263 2089 14666752 8e Linux LVM
Раздел по LVM создан — осталось настроить сам LVM.
Сначала инициализируем созданный раздел:
> sudo pvcreate /dev/sda2
Physical volume «/dev/sda2» successfully created
Создаём группу томов (я назову её server):
> sudo vgcreate server /dev/sda2
Volume group «server» successfully created
Посмотрим, что получилось:
> sudo vgscan
Reading all physical volumes. This may take a while…
Found volume group «server» using metadata type lvm2
Активируем созданный LVM:
> sudo vgchange -ay
0 logical volume(s) in volume group «server» now active
И начинаем создавать логические диски:
> sudo lvcreate -L 1G -n swap server
Logical volume «swap» created
> sudo lvcreate -L 1G -n tmp server
Logical volume «tmp» created
> sudo lvcreate -L 1G -n root server
Logical volume «root» created
> sudo lvcreate -L 2G -n home server
Logical volume «home» created
> sudo lvcreate -L 2G -n usr server
Logical volume «usr» created
> sudo lvcreate -L 2G -n srv server
Logical volume «srv» created
Смотрим, что получилось:
> sudo lvscan
ACTIVE ‘/dev/server/swap’ [1,00 GiB] inherit
ACTIVE ‘/dev/server/tmp’ [1,00 GiB] inherit
ACTIVE ‘/dev/server/root’ [1,00 GiB] inherit
ACTIVE ‘/dev/server/home’ [2,00 GiB] inherit
ACTIVE ‘/dev/server/usr’ [2,00 GiB] inherit
ACTIVE ‘/dev/server/srv’ [2,00 GiB] inherit
Итого мы создали 6 новых разделов.
> sudo pvscan
PV /dev/sda2 VG server lvm2 [13,98 GiB / 4,98 GiB free]
Total: 1 [13,98 GiB] / in use: 1 [13,98 GiB] / in no VG: 0 [0 ]
Но при этом у нас осталось почти 5 Гб неразмеченного пространства. LVM позволяет гибко изменять разделы томов, т.ч. оставлю его в резерве.
Форматируем разделы:
> sudo mkfs.ext4 /dev/server/home
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 27 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
> sudo mkfs.ext4 /dev/server/root
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
> sudo mkfs.ext4 /dev/server/srv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
> sudo mkfs.ext4 /dev/server/tmp
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65536 inodes, 262144 blocks
13107 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
> sudo mkfs.ext4 /dev/server/usr
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Writing inode tables: done
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 36 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
Форматируем swap:
> sudo mkswap -f /dev/server/swap
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=13ad3312-8b76-4018-8e3e-6cbbc94a807f
Мне пришлось использовать аргумент -f, т.к. вылезает ошибка «warning: don’t erase bootbits sectors on whole disk.».
В результате мы получили тома со следующими идентификаторами:
> sudo blkid
/dev/sda1: UUID=»653ac5dc-ea55-4c75-be36-e54e26d078e1″ TYPE=»ext3″
/dev/sda2: UUID=»mkkLen-vzQr-KFRA-rJCe-h4dw-Irj8-GIfNsi» TYPE=»LVM2_member»
/dev/mapper/server-swap: UUID=»13ad3312-8b76-4018-8e3e-6cbbc94a807f» TYPE=»swap»
/dev/mapper/server-tmp: UUID=»19ab2a02-6ff2-4870-b834-f0c992f577d2″ TYPE=»ext4″
/dev/mapper/server-root: UUID=»854a4bc0-eb17-4639-b298-35f3367cbc83″ TYPE=»ext4″
/dev/mapper/server-home: UUID=»f971ccfb-4391-4ad0-bf49-885406800783″ TYPE=»ext4″
/dev/mapper/server-usr: UUID=»13e6e8a9-4aa8-467c-8995-fe3d52f1f8c6″ TYPE=»ext4″
/dev/mapper/server-srv: UUID=»b178a220-5548-44e6-ac81-4d7ec5dd1373″ TYPE=»ext4″
Прописываем swap:
В файл /etc/fstab добавляем следующую строчку:
UUID=13ad3312-8b76-4018-8e3e-6cbbc94a807f none swap sw 0 0
Запускаем swap:
> sudo swapon -va
swapon on /dev/mapper/server-swap
swapon: /dev/mapper/server-swap: found swap signature: version 1, page-size 4, same byte order
swapon: /dev/mapper/server-swap: pagesize=4096, swapsize=1073741824, devsize=1073741824
Смотрим, что получилось:
> cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-0 partition 1048568 0 -1
Пробуем смонтировать ext4 раздел:
> sudo mount /dev/server/home /mnt
У меня раздел смонтирован успешно:
> mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
Появилась необходимость увеличения размера виртуальных дисков на виртуальной машине с CentOS 7. Задача простая, но все мануалы которые находятся поиском в google почему-то не работают. На деле всё достаточно просто, делается буквально несколькими командами.
Итак, имеется два виртуальных диска, системный – 16Gb, смонтированный – 5Gb. Смотрим список всех разделов, их размеры и процент использования
[root@centos7 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 9.9G 3.4G 75% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 84K 912M 1% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sdb1 4.8G 3.9G 666M 86% /mnt/mailstore /dev/sda1 297M 152M 146M 51% /boot tmpfs 183M 12K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0
Средствами гипервизора увеличиваем размеры дисков, системный – 20Gb, смонтированный – 15Gb.
Смотрим таблицы разделов
[root@centos7 ~]# fdisk -l Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000c45a0 Device Boot Start End Blocks Id System /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 3762175 1572864 82 Linux swap / Solaris /dev/sda3 3762176 31457279 13847552 83 Linux Disk /dev/sdb: 16.1 GB, 16106127360 bytes, 31457280 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: 0x5d48b270 Device Boot Start End Blocks Id System /dev/sdb1 2048 10485759 5241856 83 Linux
Размеры дисков увеличились, осталось увеличить размеры разделов. Сначала изменим смонтированный диск – в конкретном случае sdb1. Первым делом размонтируем его, потом удалим имеющийся раздел (данная операция не затрагивает хранящиеся данные на диске) и создадим его заново большего размера
[root@centos7 ~]# umount /mnt/mailstore/ [root@centos7 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 9.9G 3.4G 75% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 84K 912M 1% /dev/shm tmpfs 912M 9.0M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 297M 152M 146M 51% /boot tmpfs 183M 16K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0 [root@centos7 ~]# fdisk /dev/sdb 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): d Selected partition 1 Partition 1 is deleted Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-31457279, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-31457279, default 31457279): Using default value 31457279 Partition 1 of type Linux and of size 15 GiB is set Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@centos7 ~]# resize2fs /dev/sdb1 resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/sdb1 is mounted on /mnt/mailstore; on-line resizing required old_desc_blocks = 1, new_desc_blocks = 2 The filesystem on /dev/sdb1 is now 3931904 blocks long.
Монтируем диск обратно, перечитаем таблицу разделов и проверяем размер интересующего раздела
[root@centos7 ~]# mount -t ext4 /dev/sdb1 /mnt/mailstore/ [root@centos7 ~]# /sbin/partprobe [root@centos7 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 14G 9.9G 3.4G 75% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 84K 912M 1% /dev/shm tmpfs 912M 9.0M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda1 297M 152M 146M 51% /boot tmpfs 183M 16K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0 /dev/sdb1 15G 3.9G 11G 28% /mnt/mailstore
Теперь вторая половина задания, увеличим системный раздел – в текущей конфигурации sda3. Смотрим таблицу разделов, удаляем нужный, создаём его заново – большего размера
[root@centos7 ~]# 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): p Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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: 0x000c45a0 Device Boot Start End Blocks Id System /dev/sda1 * 2048 616447 307200 83 Linux /dev/sda2 616448 3762175 1572864 82 Linux swap / Solaris /dev/sda3 3762176 31457279 13847552 83 Linux Command (m for help): d Partition number (1-3, default 3): 3 Partition 3 is deleted Command (m for help): n Partition type: p primary (2 primary, 0 extended, 2 free) e extended Select (default p): p Partition number (3,4, default 3): 3 First sector (3762176-41943039, default 3762176): Using default value 3762176 Last sector, +sectors or +size{K,M,G} (3762176-41943039, default 41943039): Using default value 41943039 Partition 3 of type Linux and of size 18.2 GiB is set 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@centos7 ~]# /sbin/partprobe Error: Partition(s) 3 on /dev/sda have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
Как видно – перечитать таблицу разделов не удалось, т.к. раздел используется системой. Для внесения изменений необходима перезагрузка операционной системы. После перезагрузки осталось расширить раздел
[root@centos7 ~]# resize2fs /dev/sda3 resize2fs 1.42.9 (28-Dec-2013) resize2fs: Bad magic number in super-block while trying to open /dev/sda3 Couldn't find valid filesystem superblock.
Проблема в том, что resize2fs умеет работать только с ext2-4 файловыми системами, а CentOS7 по умолчанию создаёт разделы в файловой системе xfs. Решением является использование команды xfs_growfs
[root@centos7 ~]# xfs_growfs /dev/sda3 meta-data=/dev/sda3 isize=512 agcount=4, agsize=865472 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0 spinodes=0 data = bsize=4096 blocks=3461888, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 3461888 to 4772608 [root@centos7 ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda3 19G 9.9G 8.4G 55% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 84K 912M 1% /dev/shm tmpfs 912M 8.9M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sdb1 15G 3.9G 11G 28% /mnt/mailstore /dev/sda1 297M 152M 146M 51% /boot tmpfs 183M 12K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0
В результате получилось увеличить раздел sda3 с 14Gb до 19Gb, а монтируемый раздел sdb1 с 4,8Gb до 15Gb.
5 634