Как изменить размер одного из primary partitions?

Привет всем!
Надеюсь на помощь умудренных жизнью линуксоводов.
Есть винчестер 160гб, разбитый следующим образом -

heffalump:/home/galina# fdisk -l

Disk /dev/hda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0xa71ea71e

   Device Boot      Start         End      Blocks   Id  System
/dev/hda1               1          34      273073+  83  Linux
/dev/hda2              35        4864    38796975    5  Extended
/dev/hda3            4865        9963    40957717+  83  Linux
/dev/hda4   *        9964       19457    76260555    7  HPFS/NTFS
/dev/hda5              35         642     4883728+  83  Linux
/dev/hda6             643        1007     2931831   83  Linux
/dev/hda7            1008        1195     1510078+  82  Linux swap / Solaris
/dev/hda8            1196        1244      393561   83  Linux
/dev/hda9            1245        4864    29077618+  83  Linux
This disk has both DOS and BSD magic.
Give the 'b' command to go to BSD mode.

heffalump:/home/galina# df -h
/dev/hda1             259M  231M   14M  95% /
tmpfs                 507M     0  507M   0% /lib/init/rw
udev                   10M  200K  9,9M   2% /dev
tmpfs                 507M     0  507M   0% /dev/shm
/dev/hda9              28G   15G   11G  58% /home
/dev/hda8             373M   11M  343M   3% /tmp
/dev/hda5             4,6G  3,5G  954M  79% /usr
/dev/hda6             2,8G  2,1G  579M  79% /var
/dev/hda3              39G   17G   20G  46% /mnt/bonus
/dev/hda4              73G   25G   49G  34% /mnt/win

hda1,3,4 - primary partitions, а hda5,6,7,8,9 лежат в extended разделе hda2.
Проблема в /dev/hda1 - свободного места осталось 14Мб.

Хочу увеличить размер hda1 до 700 Мб.
На hda9, hda3, hda4 дофига свободного места в концах, можно отрезать.
Есть внешний USB HDD 40Gb, если он может как-то помочь.

Пытался грузиться с лайвЦД, далее Gparted, уменьшаю один из логических дисков в extended, который hda2, получаю кусок свободного места, но уменьшить размер hda2 на это свободное место не получается (Gparted не дает).
Как быть?

Спасибо если кто поможет.

Это может

Это может оказаться сложным и опасным для данных. Я бы на вашем месте нашел винчестер куда можно скопиравать все даные и бекап системы, удалил все разделы на этом и создал заново так как удобно.

Никогда не делайте логические разделы. От них много прорблем.
..................................................................
Unix - дружественная система, но своих друзей она хорошо выбирает.

.

dmitryilyin2 написал(а):
Никогда не делайте логические разделы. От них много прорблем.

C какими вы сталкивались? Я обычно всегда делаю один primary и много-много логических.

Если вы хотите

Если вы хотите юзать много разделов то лучше используйте lvm2
И резайзить lvm тома проще намного к тому же на лету мона
PS или можете юзать gpt таблицу разделов
___________________________________________
Gentoo GNU/Linux 2.6.25 GCC 4.3.1
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

Эт ладно, но как

Эт ладно, но как быть в данной ситуации? Я не слишком силен в таких делах..
Можно ли будет сделать так (/dev/sda1 - внешний HDD на 40Гб) - сначала загрузка с лайвцд, а там
dd if=/dev/hda1 of=/mnt/sda1/hda1-backup (это /)
dd if=/dev/hda5 of=/mnt/sda1/hda5-backup (это и все что ниже - содержимое extended раздела)
dd if=/dev/hda6 of=/mnt/sda1/hda6-backup
dd if=/dev/hda7 of=/mnt/sda1/hda7-backup
dd if=/dev/hda8 of=/mnt/sda1/hda8-backup
dd if=/dev/hda9 of=/mnt/sda1/hda9-backup
(все это как раз на 37гб будет)
потом в Gparted убить extended раздел /dev/hda2 со всем содержимым, увеличить размер /dev/hda1 на 440мб, и потом создать заново extended раздел /dev/hda2 и скопировать обратно все от /dev/hda5 до /dev/hda9, только hda9-backup копирнуть обратно с уменьшенным размером (в конце там довольно много свободного места):
dd if=/mnt/sda1/hda5-backup of=/dev/hda5
dd if=/mnt/sda1/hda6-backup of=/dev/hda6
dd if=/mnt/sda1/hda7-backup of=/dev/hda7
dd if=/mnt/sda1/hda8-backup of=/dev/hda8
dd if=/mnt/sda1/hda9-backup of=/dev/hda9 count=(29077618-901120)
тут, как я понимаю 29077618 - исходный размер hda9, а 901120 - 440мб блоками по 512байт

сработает ли это?
очень важно чтобы данные не потерялись...

Quote:Пытался

Цитата:
Пытался грузиться с лайвЦД, далее Gparted, уменьшаю один из логических дисков в extended, который hda2, получаю кусок свободного места, но уменьшить размер hda2 на это свободное место не получается (Gparted не дает).
Как быть?

А кусок свободного места "скраю" экстендеда появился? Или может между разделами просто. Покажи fdisk после ресайза лог. раздела.

А вообще чтобы добиться желаемого результата тебе нужно hda5 уменьшить и переместить
т.е.
Было (нижняя строчка - "внутренности extended")

hda1  hda2           ...
     [hda5 hda6 ...]

Стало

hda1  hda2                     ...
     [св.про-во hda5 hda6 ...]

И уже затем менять размер extended.
Как уже было замечено дело это рисковое.

так и делал

Storm написал(а):
Цитата:
Пытался грузиться с лайвЦД, далее Gparted, уменьшаю один из логических дисков в extended, который hda2, получаю кусок свободного места, но уменьшить размер hda2 на это свободное место не получается (Gparted не дает).
Как быть?

А кусок свободного места "скраю" экстендеда появился? Или может между разделами просто. Покажи fdisk после ресайза лог. раздела.

А вообще чтобы добиться желаемого результата тебе нужно hda5 уменьшить и переместить
т.е.
Было (нижняя строчка - "внутренности extended")

hda1  hda2           ...
     [hda5 hda6 ...]

Стало

hda1  hda2                     ...
     [св.про-во hda5 hda6 ...]

И уже затем менять размер extended.
Как уже было замечено дело это рисковое.

Ага, я именно так и делал. Только там же как - Gparted сначала записывает изменения, а уже потом когда жмакнешь "применить" - по порядку их "применяет". Я привел hda2 к тому виду, как ты и пишешь, но hda2, хоть там и было свободное пространство в самом начале - изменить было нельзя, хоть ты тресни. Так я и не стал "применять" эти изменения, т.е. физически таблицу разделов не менял. Это имеет значение?

А чем оно рисковое? Gparted крив или другие причины?
-Alex-

Тем, что

Тем, что напрямую вносятся изменения в структуру ФС, которая достаточно сложна, чтобы там можно было где-то ошибку допустить.

чем это рисково ..

Цитата:
Ага, я именно так и делал. Только там же как - Gparted сначала записывает изменения, а уже потом когда жмакнешь "применить" - по порядку их "применяет". Я привел hda2 к тому виду, как ты и пишешь, но hda2, хоть там и было свободное пространство в самом начале - изменить было нельзя, хоть ты тресни. Так я и не стал "применять" эти изменения, т.е. физически таблицу разделов не менял. Это имеет значение?

А чем оно рисковое? GParted крив или другие причины?
-Alex-

Рисково тем, что в любом случае (хоть на Windows, хоть на Linux) при изменении размеров разделов, данные должны куда-то временно переносится. А потом, когда раздел готов -- назад. Так вот не все данные и не всегда могут успешно временно переместиться, особенно если места на диске мало. Правда есть еще и дисковый резерв -- свободное место на диске, недоступное ни для системы ни для пользователя, в обычном режиме. Оно используется для переноса данных с тех участков пластин, которые "посыпались". Но ведь не факт, что GParted или PM корректно используют эту фичу и не факт что там тоже хватит места.

Так что, если не получилось сразу спланировать, лучше сделать нормальный бэкап на другой винчестер, а этот разметить заново. Или просто переместить все на другой, бОльший винчестер.

да... каких

да... каких только чудес не услышиш.
резервное пространство для бедблоков весьма мало и его может использовать только одна прогамма - сама прошивка диска.
сложность перемещения в данной ситуации в следующем - так как информация о разделе и ФС на нём находится в начале раздела, то его конец можно двигать лего и непринуждённо а вот начало - нет. А если это расширенный раздел, есть риск (весьма большой) убить все расширенные разделы разом, и из-за неправильного переноса и из-за неправильного редактирования MBR в такой сложной ситуации.

А если вот такую затею реализовать?!

Блин, а если не париться, и сделать так -
0) грузануться с лайвЦД
а) копирнуть тупо hda1 посредством dd куда-нибудь, хоть на резервный винт, хоть в файл в /home
б) потом уменьшить размер партиции hda3 скажем на один гиг
в) удалить нафиг весь старый hda1
г) сделать на месте свободного места, оставшегося после уменьшения hda3, новую основную партицию
д) копирнуть в эту свежесделанную партицию (уже гиговую) образ hda1
е) в fstab поправить, если чего поменяется

сработает такой метод?

и черт с ним, что будет свободный кусок на 260 мб в начале диска

Ставили после

Ставили после виндовоза... :)
у винды какие-то свои взгляды на разметку диска. extendended-раздел должен быть N4. должно быть не более 3 primary разелов. все остальное в extended. т.е. систмный раздел винды должен быть 1,2,или 3. поэтому нужно загрузиться с live-cd и поправить нумерацию разделов. это можно сделать с помощью fdisk -> расширенное меню. и переместить один примари в экстендед. поправить загрузчик и /etc/fstab.

это не проблема

это не проблема винды а аграничение MBR который она создаёт - не более 4х разделов, размером не более 2х терабайт. потом выдумали расширенные разделы и в них засунули ещё разделов.

Верно

Не она только, это еще дядки из IBM придумали давно.
Есть кстати другие типы таблиц разделов, которые линукс поддерживает. Правда я с ними не пробовал работать.

PS: Хотя вру, пробовал работать с виндовым "динамическим диском". Там посути уже другая таблица разделов используется. Нормально виделось и работало в линухе.

Я gpt юзаю =) Мне

Я gpt юзаю =)
Мне она больше нравится =)
___________________________________________
Gentoo GNU/Linux 2.6.25 GCC 4.3.1
Working on Gentoo for iPAQ hx4700 :-)
Если у вас компьютер с Windows, есть два выхода: выбросить компьютер в форточку или выбросить форточки с компьютера

И чем всё это кончилось, типа отчет.

Короче говоря, генту-вей или проще - линукс-вей не сложился. Так и не понял я, получится оно или не получится.. Соваться или не соваться, а данные дОроги, терять более чем жалко. Размер партиции был изменен посредством Acronis Disk Director Suite. Уменьшил размер одного из больших разделов на гиг, сделал из свободного места еще одну партицию, переместил старую корневую партицию в эту свежесозданную, а старую грохнул. теперь пустых 260 мб в начале диска (и бог с ними). Всё в ёлочку. А мораль сей басни такова - под корневой раздел отводить не менее гига, а лучше - полтора-два, чтобы не иметь заморочек в будущем.

скорее всего,

скорее всего, при установке чего-либо в /opt/ исчерпалось свободное место в корне, проще было даже сделать контейнер гига на 2 с ФС на лобом разделе, слить содержимое /opt/ туда и подмонтировать в /opt/.

а ещё лучше

а ещё лучше делать 3 раздела - /boot / и swap. или юзать LVM/EVMS если осень хочется иметь много раздельчиков

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".