Перемещение корневой файловой системы Linux против изменения размера ее раздела - PullRequest
0 голосов
/ 27 февраля 2012

Мне нужно получить больше места для корневой файловой системы, которая была случайно установлена ​​на неправильный раздел. Учитывая разделы ниже, я могу либо сжать sda1 до 1 байта, а затем увеличить sda6, чтобы занять все освободившееся пространство, а затем поменять местами / dev / sda5 и swapoff / dev / sda7 (хотя и не вредно оставлять sda7 в качестве swap).

Альтернативный вариант - скопировать все sda6 в sda1, отредактировать sda1 / boot / grub / grub.cfg из set root = '(hd0,6)' для установки root = '(hd0,0)', а затем переустановить grub так что он может найти grub.cfg в sda1.

sda5 и sda6 были созданы случайно и могут быть отменены.

Существуют ли какие-либо конкретные факторы, которые указывают, что я должен выбрать один подход вместо другого?

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1       72474   582142975   83  Linux
/dev/sda2           72474       72962     3915777    5  Extended
/dev/sda5           72800       72962     1296384   82  Linux swap / Solaris
/dev/sda6           72474       72778     2442240   83  Linux THIS IS WHERE THE ROOT IS
/dev/sda7           72778       72800      171008   82  Linux swap / Solaris THIS IS THE PRESENT SWAP

Сервер Ubuntu 10.04.1 (без X).

С уважением, Александр

1 Ответ

1 голос
/ 28 февраля 2012

Обе опции доступны для вас, и я бы сказал, что вы должны выбрать, какой из них приведет к окончательной конфигурации номеров разделов и местоположений, которые вы предпочитаете, т. Е. Хотите ли вы, чтобы в конечном итоге корень находился на sda1 или sda6?

Предупреждение: ваш первый вариант не работает так, как вы его представили.По сути, этот вариант заключается в увеличении sda6 путем перемещения его начального блока назад к началу диска.Но ожидается, что файловые системы всегда будут находиться в начале раздела, в котором они расположены, поэтому вам придется переместить данные корневой файловой системы, которые в настоящее время занимают цилиндры с 72474 по 72778, чтобы они вместо этого занимали цилиндры с 1 по 305.Вы пропустили этот шаг.

Вот два золотых правила, которым необходимо следовать перед началом:

  • Работа с секторами, а не с цилиндрами.Разделы не должны начинаться и заканчиваться на границах цилиндров, так что вы можете указать неправильные смещения, если работаете в цилиндрах.
  • Делайте все это из загруженной по сети среды восстановления или из initramfs, если этовсе что у тебя есть.С особой осторожностью вы можете сделать это из работающей системы, но вы справитесь сами с этим!

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

С учетом вышесказанного, здесь есть измененный вариант # 1.

  1. Скопируйте содержимоеsda6 на sda1 с dd.
  2. Удалите sda1 и sda6
  3. Создайте новый sda6, который начинается со смещения начала для старого sda1 и заканчивается смещением конца для старого sda6.
...