LINUX.ORG.RU
ФорумAdmin

Увеличение ext4 без потерь данных


0

2

Подскажите пожалуйста как это сделать с помощью parted? Я пытался разобраться сам, ничего не понял на счет parted resize начало-конец. Привожу свою структуру разделов.

[root@vds1077 ~]# parted
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  316MB   315MB   primary  ext4            boot
 2      316MB   1389MB  1074MB  primary  linux-swap(v1)
 3      1389MB  32.2GB  30.8GB  primary  ext4

Как видно, в 3-ем размечено 30 ГБ из 64.4 доступных. Я хочу этому 3-ему отдать всю неразмеченную область, без потерь данных.

Может пригодится ещё

[root@vds1077 ~]# fdisk -l

Disk /dev/sda: 64.4 GB, 64424509440 bytes
255 heads, 63 sectors/track, 7832 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: 0x00030021

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          39      307200   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              39         169     1048576   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3             169        3917    30100480   83  Linux


lvextend -L+50G /dev/your-vg/your-volume
resize2fs /dev/your-vg/your-volume

Всё на лету, без отмонтирования, без всяких parted.

KRoN73 ★★★★★
()
Ответ на: комментарий от GotF

Ruslan> Partition 2 does not end on cylinder boundary

Скажи ему, чтобы fdisk с опцией -u запускает, а то фиг потом создаст начиная с 169 цилиндра

sdio ★★★★★
()

в партеде rm 3, mkpart p ext4 1389MB -1 потом resize2fs /dev/sda3

parrot
()

man parted:

resize partition start end

resize the filesystem on partition to start at start and end at end megabytes



Запускайте parted и вводите:
resize 3 1389MB 64.4GB

AITap ★★★★★
()
Ответ на: комментарий от parrot

>Model: ATA QEMU HARDDISK

Так в чём тогда проблема просто перекопировать? Это же не Windows.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73
lvextend -L+50G /dev/your-vg/your-volume
resize2fs /dev/your-vg/your-volume

Всё на лету, без отмонтирования, без всяких parted.

Можно же вместо resize2fs добавить к lvextend опцию "-r"...

Deleted
()
Ответ на: комментарий от AITap
Добро пожаловать в GNU Parted! Наберите 'help' для просмотра списка команд.
(parted) h
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  help [КОМАНДА]                   распечатать общую справку или справку по КОМАНДЕ
  mklabel,mktable ТИП_МЕТКИ         создать новую метку диска (таблицу раздела) 
  mkpart ТИП_РАЗД [ТИП_ФС] НАЧ КОН создать раздел
  name НОМЕР ИМЯ                   назначает имя разделу НОМЕР на ИМЯ
  print [devices|free|list,all|НОМЕР]     отображает таблицу разделов, доступные устройства, свободное место, все найденные разделы или определённый раздел
  quit                             выйти из программы
  rescue НАЧАЛО КОНЕЦ              восстановить потерянный раздел в промежутке от НАЧАЛА до КОНЦА
  rm НОМЕР                         удалить раздел НОМЕР
  select УСТРОЙСТВО                выбор устройства для редактирования
  set НОМЕР ФЛАГ СОСТОЯНИЯ         изменить ФЛАГ на разделе НОМЕР
  toggle [НОМЕР [ФЛАГ]]            переключает состояния ФЛАГА на разделе НОМЕР
  unit УСТРОЙСТВО                  установить устройство по умолчанию на УСТРОЙСТВО
  version                                  отображает текущую версию GNU Parted и информацию о лицензии

где ресайз и мои деньги%)

parrot
()
Ответ на: комментарий от parrot
[13:40:56][aitap@Tarkus ~]> /sbin/parted
WARNING: You are not superuser.  Watch out for permissions.
/dev/mapper/control: open failed: Отказано в доступе
Failure to communicate with kernel device-mapper driver.
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) h
  align-check TYPE N                        check partition N for TYPE(min|opt) alignment
  check NUMBER                             do a simple check on the file system
  cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER   copy file system to another partition
  help [COMMAND]                           print general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a new disklabel (partition table)
  mkfs NUMBER FS-TYPE                      make a FS-TYPE file system on partition NUMBER
  mkpart PART-TYPE [FS-TYPE] START END     make a partition
  mkpartfs PART-TYPE FS-TYPE START END     make a partition with a file system
  move NUMBER START END                    move partition NUMBER
  name NUMBER NAME                         name partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display the partition table, available devices, free space, all found partitions, or a particular partition
  quit                                     exit program
  rescue START END                         rescue a lost partition near START and END
  resize NUMBER START END                  resize partition NUMBER and its file system
  rm NUMBER                                delete partition NUMBER
  select DEVICE                            choose the device to edit
  set NUMBER FLAG STATE                    change the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle the state of FLAG on partition NUMBER
  unit UNIT                                set the default unit to UNIT
  version                                  display the version number and copyright information of GNU Parted
(parted) h resize
  resize NUMBER START END                  resize partition NUMBER and its file system

        NUMBER is the partition number used by Linux.  On MS-DOS disk labels, the primary partitions number from 1 to 4, logical partitions from 5 onwards.
        START and END are disk locations, such as 4GB or 10%.  Negative values count from the end of the disk.  For example, -1s specifies exactly the last sector.
        The partition must have one of the following FS-TYPEs: ext4, ext3, ext2, fat32, fat16, hfsx, hfs+, hfs, swsusp, linux-swap(v1), linux-swap(v0), linux-swap,
        linux-swap(new), linux-swap(old)
(parted) q                                                                
[13:41:11][aitap@Tarkus ~]> 
AITap ★★★★★
()
Ответ на: комментарий от Deleted

>Можно же вместо resize2fs добавить к lvextend опцию "-r"...

Век живи, век учись :)

KRoN73 ★★★★★
()
Ответ на: комментарий от AITap

[root@vds1077 ~]# parted
GNU Parted 2.1
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) p
Model: ATA QEMU HARDDISK (scsi)
Disk /dev/sda: 64.4GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      1049kB  316MB   315MB   primary  ext4            boot
 2      316MB   1389MB  1074MB  primary  linux-swap(v1)
 3      1389MB  32.2GB  30.8GB  primary  ext4

(parted) resize 3 1389MB 64.4GB
WARNING: you are attempting to use parted to operate on (resize) a file system.
parted's file system manipulation code is not as robust as what you'll find in
dedicated, file-system-specific packages like e2fsprogs.  We recommend
you use parted only to manipulate partition tables, whenever possible.
Support for performing most operations on most types of file systems
will be removed in an upcoming release.
Error: Partition /dev/sda3 is being used. You must unmount it before you modify
it with Parted.
(parted) quit
[root@vds1077 ~]# umount /dev/sda3
umount: /: device is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
 

Как я понимаю, на лету всё же не получится? Надо у хостера просить загрузить с LiveCD, и тогда уже всё это делать?

Это ж кстати XEN VPS на hardware виртуализации, если это имеет отношение к делу.

Ruslan
() автор топика
Ответ на: комментарий от Ruslan

> Надо у хостера просить загрузить с LiveCD, и тогда уже всё это делать?
Да, проще будет сделать так.

Но можно попробовать запустить fdisk, удалить раздел, создать новый с тем же типом ФС и координатой начала (и кординатой конца в конце диска) и перезагрузиться, после чего сделать resize2fs /dev/sda3. Способ опасен тем, что если Вы промахнётесь с началом раздела, система не запустится, и тогда придётся всё равно загружаться с livecd и testdisk'ом восстанавливать таблицу разделов.

На этапе записи изменений fdisk ругнётся, что не удалось прочитать новую таблицу разделов, потому что device or resource busy.

AITap ★★★★★
()
Ответ на: комментарий от sdio

А куда/как его можно примонтировать?

в /dev/sda3 есть папка /var/www

можно ли создать /dev/sda4 и примонтировать всё к той же /var/www ?

Ruslan
() автор топика
Ответ на: комментарий от AITap

>Но можно попробовать запустить fdisk, удалить раздел, создать новый с тем же типом ФС и координатой начала (и кординатой конца в конце диска) и перезагрузиться, после чего сделать resize2fs /dev/sda3. Способ опасен тем, что если Вы промахнётесь с началом раздела, система не запустится, и тогда придётся всё равно загружаться с livecd и testdisk'ом восстанавливать таблицу разделов.

На этапе записи изменений fdisk ругнётся, что не удалось прочитать новую таблицу разделов, потому что device or resource busy.

Для этого всёравно придётся отцепить /dev/sda3, что я сделать не могу в живой системе. Только грузится с LiveCD. Верно?

Или всё же есть способ на лету? Под виндой помню акронисом или partion mafic кнопочки поклацал, дажее Apply и тут система перезагружается и в этот момент до загрузки ОС делает с разделами всё что я наклацал. Тут нельзя как-то подобным образом?

Ruslan
() автор топика
Ответ на: комментарий от Ruslan

тебя заставлять что ли надо. пол треда сопли жуешь.

забэкапь инфу

отмонтируй то что лежит на увеличиваемой партиции. например umount /var/www

cfdisk удали и создай там же но на больший размер партицию.

сделай ресайзфс.

примонтируй.

uspen ★★★★★
()
Ответ на: комментарий от uspen

и никаких кнопочек дурацких в акронисе и перезагрузок

uspen ★★★★★
()
Ответ на: комментарий от Ruslan

> Для этого всёравно придётся отцепить /dev/sda3, что я сделать не могу в живой системе.
Точно? По идее, это не понадобится, т.к. fdisk редактирует только таблицу разделов (64 байта в начале диска по смещению 448), а сами данные на разделах не трогает.

Тут нельзя как-то подобным образом?

LiveCD и получается «подобный образ». Можно ещё собрать себе initramfs с parted с ssh внутри и загрузиться с него, получится то же самое.

AITap ★★★★★
()
Ответ на: комментарий от AITap

В конце концов, если это не корень, /dev/sda3 таки можно отмонтировать (посмотрите lsof'ом, что за процессы заняли mountpoint).

AITap ★★★★★
()
Ответ на: комментарий от Ruslan

можно ли создать /dev/sda4 и примонтировать всё к той же /var/www ?

Не к той же, а вместо:

1. Создать /dev/sda4
2. Форматнуть в ext4 (или по вкусу)
3. прописать в /etc/fstab
/dev/sda3 /var/www ext4 defaults 0 0

4. mount --bind /var/www /mnt
5. mount /var/www
6. mv /mnt/* /var/www
7. umount /mnt

Всё

sdio ★★★★★
()
Ответ на: комментарий от sdio

>1. Создать /dev/sda4

Дык больше 30 ГБ не получится создать! Я в итоге получу 2 логических диска по ~30 ГБ

/dev/sda3 - ~30гб /dev/sda4 - ~30гб

Зачем мне это нужно? Мне нужен ОДИН /dev/sda3 с полной доступной ёмкостью в ~60ГБ.

Ruslan
() автор топика
Ответ на: комментарий от Ruslan

Ну и делай, как тебе нужно, куча вариантов выше.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.