nixp.ru v3.0

26 мая 2017,
пятница,
02:58:53 MSK

DevOps с компанией «Флант»
danikcom написал 20 марта 2006 года в 13:32 (485 просмотров) Ведет себя как мужчина; открыл 52 темы в форуме, оставил 132 комментария на сайте.

Нужно переразбить разделы на HDD, как это сделать (не удаляя linux)? Обычно пользовался Partition Magic из под винды, но это я сначала разбивал разделы, а потом ставил linux. Сейчас же допустим в том же Partition Magic кнопка Resize на Linux разделы не активна, а на Windows разделы активна. Возможно ли както переразбить в данном случае?

Dr. Evil

пытаешь сделать resize кому разделу? корневому?

короче на все linux разделы resize не доступен, на fat32 разделы — доступен. Хочу перекинуть часть раздела с fat32 на ext3

Dr. Evil
все linux разделы

это какие разделы?

напиши точно.

/- ext3, /home — ext3

Dr. Evil

/- ext3 — какой утилитой расширить его, я не знаю. по-моему, это вообще не возможно. Почему /home — ext3 не расширяется при помощи виндовой утилиты, не понятно. а чем тебе fdisk не люб?

если честно, то я боюсь им пользоваться! :) а им это возможно? данные не повредятся?

anonymous

http://www.nixp.ru/soft/system_hdd

если честно забзипь весь раздел с никсой с кнопикса например скопни куда-нибудь и перебей партишенем спокойно — по опыту если начал бить диск партишеном им и добивай :)

Dr. Evil

100 % гарантии никто дать не может;)

если честно забзипь весь раздел с никсой с кнопикса например скопни куда-нибудь и перебей партишенем спокойно

что это значит? у меня RHEL

Dr. Evil

тебе предлагают воспользоваться Live CD дистрибутивом Knopix для разбиения диска, чтобы в консоли не ковыряться. А в RH нет какой-нибудь графической утилиты, которая может партиции двигать? ты искал?

тебе страшно использовать fdisk или маны читать не хочшь?

еще можно посоветовать cfdisk. он, типа, гуевый…

DimkaS

В 4-м Кноппиксе, вроде, gparted есть. Симпатичная утилитка.

да у меня стоит qtparted (графическая), а проблема не решена…

Dr. Evil

dis123, ты сразу пиши источник проблемы, а? что не получается? не можешь изменить размер /home?

ну я же уже все объяснил… да, не могу увеличить размер /home, не могу перекинуть часть гигов с / на /home и с fat32 на /home…

rgo
dis123
ну я же уже все объяснил… да, не могу увеличить размер /home, не могу перекинуть часть гигов с / на /home и с fat32 на /home…

вывод fdisk -l в студию, с комментариями что, откуда и куда надо перекинуть. И, подробно: как ты пытался это сделать, то есть последовательность твоих действий.

вывод fdisk -l

# fdisk -l

Disk /dev/hda: 40.0 GB, 40017485312 bytes

255 heads, 63 sectors/track, 4865 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hda1 * 1 1120 8996368+ c W95 FAT32 (LBA)

/dev/hda2 1121 3212 16803990 c W95 FAT32 (LBA)

/dev/hda3 3213 4494 10297665 83 Linux

/dev/hda4 4495 4865 2980057+ 83 Linux

Disk /dev/hdb: 160.0 GB, 160041885696 bytes

255 heads, 63 sectors/track, 19457 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System

/dev/hdb1 1 6006 48243163+ c W95 FAT32 (LBA)

/dev/hdb2 * 6007 19457 108045157+ c W95 FAT32 (LBA)

с комментариями что, откуда и куда надо перекинуть.

мне нужно допустим перекинуть 1G с hda2 на hda4 и 2G с hda3 на hda4

И, подробно: как ты пытался это сделать, то есть последовательность твоих действий.

Хотел это сделать либо Partition Magic из под винды, либо QTParted из под линух, это графические проги, и я уже говорил что в них кнопка Resize на линукс разделы не активна, для того чтобы изменить размер разделов. Хотя виндовз разделы изменять между собой можно…

Dr. Evil

dis123, я же тебе писал, что корень ты не сможешь увеличить/сократить, а твой /home, как я понимаю, находится в конце диска. куда его расширять?

не получиться у тебя твой финт, к сожалению…

rgo

значит последовательность действий, должна быть примерно следующая:

1) уменьшить размер hda2 на 1G

2) уменьшить hda3 на 2G

3) сместить hda3 на 3 гига к началу диска, вплотную к hda2

4) теперь сместить hda4 к hda3

5) вот теперь можно будет увеличить hda4.

то что PM не умеет работать с ext3 меня не удивляет. QParted — не знаю. Попробуй просто parted — вроде как он умеет. Либо, придётся изменять размер fs тулзой resize2fs, а размер раздела fdisk’ом. PM, насколько я помню, не различает эти размеры, QTParted, если его интерфейс содран с pm, вполне вероятно тоже. Но ежели пользоватся fdisk и resize2fs, то придётся различать, но там всё просто: главное, что, в процессе всех эволюций (и в их результате), раздел не должен становиться меньше чем размер fs находящейся в нём.

ЗЫ. вот что сообразил: может они не умеют работать с ext3, предпочитая ext2? Отломай журнал у hda4 (man tune2fs на предмет `-j’), после изменений приделаешь обратно.

вот что сообразил: может они не умеют работать с ext3, предпочитая ext2?

ты оказался прав! Решил проверить, отломал журнал, залез в QTParted и оказалось что с ext2 можно делать Resize.

Только вот тепер

вопрос1: так чтоже такое журнал, зачем он нужен и почему его нету в ext2?

вопрос2: если я отламаю журнал, переразобью разделы, приделаю обратно журнал, данные не повредятся на этих разделах?

вопрос3: как быть с корневым разделом? читал, что перед тем как ext3->ext2 раздел должен быть несмонтирован.

rgo
dis123
вопрос1: так чтоже такое журнал, зачем он нужен и почему его нету в ext2?

журнала в ext2 нету, потому что это ext2 которая не журналируемая(-ющая?) файловая система.

dis123
вопрос2: если я отламаю журнал, переразобью разделы, приделаю обратно журнал, данные не повредятся на этих разделах?

нет. Просто, журнал, в случае повреждения фс, снижает вероятность потери данных. Точнее больше вероятность восстановить целостность без потери данных. Но это относится к ситуации с незавершёнными «нормальными» операцими, типа записи в файл, создания/удаления файла и тп. Изменение размера фс к списку «нормальных» не относится. Так что, если что-то пойдёт наперекосяк, то журнал тебя всё равно не спасёт, даже если бы он и был.

dis123
вопрос3: как быть с корневым разделом? читал, что перед тем как ext3->ext2 раздел должен быть несмонтирован.

грузани систему с live-cd.

грузани систему с live-cd

можно по подробнее? что это за live-cd? он для каждого дистрибутива свой или для всех одинаков? У меня RHEL и где его найти

Genie

фактически, можно и без перезагрузки, и без live-cd.

переходишь в init 1.

копируешь содержимое /bin, /sbin, /lib в каталог, находящийся не на корневом разделе.

делаешь

# chroot этот_каталог

и отмонтируешь раздел /

вообще, там надо бы ещё и pivot_root использовать.. в его мане это описано…

и далее уже меняешь размер разела.

вообще, там надо бы ещё и pivot_root использовать.. в его мане это описано…

а этот pivot_root обязательно использовать? я просто не знаю что это такое?

и еще вопрос:

если делаю # chroot этот_каталог, отмонтирую корневой, перезагружаю комп, при следующей загрузке куда я попаду — в корневой раздел или в тот который я сделал как # chroot этот_каталог? хотя наверное никуда т.к. не будет /boot?

Просто я хочу вот что сделать:

1.отмонтировать корневой раздел

2.переделать его с ext3 в ext2

3.потом либо из под винды Partition Magic-ом либо QTParted под линухом переразбить разделы

4.переделать коневой раздел с ext2 в ext3 и примонтировать его обратно

это как нить реально сделать?

Genie
а этот pivot_root обязательно использовать? я просто не знаю что это такое?

лень человеческая — штука коварная…

НУ СЛОЖНО, ЧТО ЛИ, ПРОЧИТАТЬ «man pivot_root» и получить объяснение????

или это мне тут сделать, для некоторых ленивых?

перезагружаю комп, при следующей загрузке куда я попаду — в корневой раздел или в тот который я сделал как # chroot этот_каталог?

ты /etc/fstab меняешь? нет? тогда какие вопросы? :)

или ты при этом параметры загрузки ядра меняешь? нет? ну тогда с чего ты при загрузке должен попасть в другое место?

ps: кстати, если используется lilo, то надо до перезагрузке неколько действий выполнить….

переходишь в init 1

использовать init 1 или можно просто выйти из графического режима и работать в консоли (в данном случае init 3)?

что то я не совсем понял — нужно ли ипользовать то что ты написал:

«копируешь содержимое /bin, /sbin, /lib в каталог, находящийся не на корневом разделе. делаешь

# chroot этот_каталог»

если в man pivot_root сказано что для изменения root file system нужно использовать именно эту функцию — pivot_root

example:

mount /dev/hda1 /new-root

cd /new-root

pivot_root . old-root

exec chroot . sh dev/console 2>&1

umount /old-root

ps: кстати, если используется lilo, то надо до перезагрузке неколько действий выполнить….

У меня GRUB, нужны ли какието дополнительные действия до перезагрузки?

P.S. что есть exec в строке exec chroot?

rgo
использовать init 1 или можно просто выйти из графического режима и работать в консоли (в данном случае init 3)?

нет ты поищи всё-таки какую-нибудь доку про runlevels, и почитай чем init 1 отличается от init 3. разница есть.

У меня GRUB, нужны ли какието дополнительные действия до перезагрузки?

Если номера разделов не изменяться, то никаких спец действий не надо.

так что насчет:

нужно ли ипользовать:

«копируешь содержимое /bin, /sbin, /lib в каталог, находящийся не на корневом разделе. делаешь

# chroot этот_каталог»

если в man pivot_root сказано что для изменения root file system нужно использовать именно эту функцию — pivot_root

example:

mount /dev/hda1 /new-root

cd /new-root

pivot_root . old-root

exec chroot . sh dev/console 2>&1

umount /old-root

или можно вообще сделать так:

1. «копируешь содержимое /bin, /sbin, /lib в каталог, находящийся не на корневом разделе. делаешь

# chroot этот_каталог»

2. в /etc/fstab, меняю / на /этот_каталог

если теперь перезагрузить комп, что будет?

а можно ли сделать так:

1. делаю резервное копирование tar-ом всего корневого раздела.

2. удаляю корневой раздел и переразбиваю диск

3. устанавливаю Линукс

4. переписываю весь корневой раздел из tar-а на только что созданный (чтобы не настраивать все настройки по новой)

Можно ли так сделать и будет ли так работать? Если да то какие нюансы при этом могут быть?

Master

В общем виде так и есть:

dis123
1. делаю резервное копирование tar-ом всего корневого раздела.

2. удаляю корневой раздел и переразбиваю диск

3. устанавливаю Линукс

4. переписываю весь корневой раздел из tar-а на только что созданный (чтобы не настраивать все настройки по новой)

5. Исправляем /etc/fstab — разбивка диска будет же другая

6. Загружаемся с live cd и запускаем lilo (из chroot) чтобы поставить загрузчик в MBR

5. Исправляем /etc/fstab — разбивка диска будет же другая

если же разделы не поменялись, а поменялись только их размеры, то получается нечего исправлять /etc/fstab?

6. Загружаемся с live cd и запускаем lilo (из chroot) чтобы поставить загрузчик в MBR

а можно сдесь по подробнее?

1.где мне можно скачать этот live cd, можно ли почитать где инфу по его использованию?

2. И если можно, опиши, как запустить lilo (из chroot) чтобы поставить загрузчик в MBR?

3. И еще вопрос, а если я использую Grub, а не Lilo?

Master
dis123
если же разделы не поменялись, а поменялись только их размеры, то получается нечего исправлять /etc/fstab?

да

dis123
1.где мне можно скачать этот live cd, можно ли почитать где инфу по его использованию?

Есть <font color=«blue»>SystemRescueCd</font>. Можно использовать install-диск дистрибутива, если в нем есть функция rescue console или что-то в этом роде.

dis123
2. И если можно, опиши, как запустить lilo (из chroot) чтобы поставить загрузчик в MBR?

Загружаемся с live cd

1. монтируем в /mnt/ Linux-раздел HDD

2. chroot /mnt

3. lilo

4. exit

5. reboot

dis123
3. И еще вопрос, а если я использую Grub, а не Lilo?

В 3-м шаге вместо lilo: grub-install /dev/hdХ

а зачем запускать lilo из chroot?

В 3-м шаге вместо lilo: grub-install /dev/hdХ

получается что для grub надо указивать раздел /dev/hdХ, а для lilo нет?

для Grub нужно указывать раздел где находится /boot?

Master
dis123
а зачем запускать lilo из chroot?

как минимум, чтобы lilo взял нужный конфиг

dis123
получается что для grub надо указивать раздел /dev/hdХ, а для lilo нет?

для Grub нужно указывать раздел где находится /boot?

для Grub нужно указывать диск на который он устанавливается

для Grub нужно указывать диск на который он устанавливается

а по умолчанию куда устанавливается grub? на тот диск куда устанавливается корневой раздел?

Master
dis123
а по умолчанию куда устанавливается grub? на тот диск куда устанавливается корневой раздел?

По умолчанию никуда не устанавливается.

Диск куда ставить — обязательная опция для grub-install.

Запусти его без параметров — увидишь.

Почитай man grub-install

а, диск! это имеется ввиду если стоит несколько винчестеров, то на какой из них? например /dev/hda? я правильно понял?

По умолчанию никуда не устанавливается.

ну ведь он же кудато устанавливается при инсталляции Linux?

Master
dis123
а, диск! это имеется ввиду если стоит несколько винчестеров, то на какой из них? например /dev/hda? я правильно понял?

да

dis123
ну ведь он же кудато устанавливается при инсталляции Linux?

куда он устаналивается — указывается из инсталятора

Хочу еще раз уточнить, правильно ли я собираюсь сделать следующее:

1. делаю резервное копирование tar-ом всего корневого раздела с сохранением на другой раздел (в моем случае на ФС vfat).

2. удаляю корневой раздел и переразбиваю диск

3. загружаюсь с SystemRescueCd и мотирую новый пустой раздел, например /dev/hda3

4. переписываю весь корневой раздел из tar-а на этот /dev/hda3

5. делаю команду #grub-install /dev/hda

6. #reboot

Все ли верно и будет ли работать загрузчик?

Master

Вроде правильно.

grub-install /dev/hda — я бы делал из chroot /mnt/hda3

grub-install /dev/hda — я бы делал из chroot /mnt/hda3

а почему? я ведь получается всеравно перепишу «grub-config» из tar-а и получается вроде как его запущу или нет?

А если даже через chroot, то получается что у меня уже будет коневой раздел на /dev/hda3 и мне его снова придется примонтировать, только уже в /mnt/hda3 и как chroot?

Master

В 3-м шаге ты примонтировал пустой раздел в /mnt/hda3

потом распаковываешь tar туда

затем

chroot /mnt/hda3
grub-install /dev/hda
exit
reboot