Почему Mint не может загрузить мой клонированный раздел Ubuntu? (Проблема с UUID)

Я использую Ubuntu 10.04 и только что установил Linux Mint 13. Я могу работать с Linux Mint полный рабочий день, но сейчас я хотел установить его на первый раздел, но сохранить загрузочную Ubuntu.

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048    58593279    29295616   83  Linux
/dev/sda2        58595326   976768064   459086369+   5  Extended
/dev/sda5       959980140   976768064     8393962+  82  Linux swap / Solaris
/dev/sda6        58595328   898696186   420050429+  83  Linux
/dev/sda7       898697216   959963135    30632960   83  Linux

sda6 - это раздел данных со всеми моими документами. sda7 был добавлен новый для создания двойной загрузки. Я клонировал sda1 в sda7 с

 dd if=/dev/sda1 of=/dev/sda7

Конечно, это также клонировало UUID, поэтому я создал новый UUID для sda7 с

tune2fs /dev/sda7 -U random

Когда я перечисляю UUID с blkid, то это действительно изменился. Затем я установил Linux Mint на sda1. У меня также есть настройка fstab для монтирования sda7, чтобы я мог копировать файлы конфигурации в новую ОС. Я нормально загружаюсь в Linux Mint, но когда я пытаюсь загрузиться в Ubuntu, я получаю сообщение (из памяти, возможно, неполное), что загрузчик не может найти /dev/disk/by-uuid/<old UUID>.

В этот момент я посмотрел в grub.cfg, и, конечно же, старый UUID указан вместе с новым:

### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Ubuntu, with Linux 2.6.32-41-generic (on /dev/sda7)" --class gnu-linux --class gnu --class os {
    insmod part_msdos
    insmod ext2
    set root='(hd0,msdos7)'
    search --no-floppy --fs-uuid --set=root 3869f8c2-dcf8-4522-bc8b-91b0ce0040fa #This is the new UUID
    linux /boot/vmlinuz-2.6.32-41-generic root=UUID=72a5e117-9a39-4de1-9d28-53791d055ff5 ro quiet splash #This is the old UUID
    initrd /boot/initrd.img-2.6.32-41-generic
}

Затем я попытался исправить это с помощью sudo update-grub, но Я все еще получаю ту же запись со смесью новых и старых UUID. Я также попытался вручную отредактировать grub.cfg, чтобы заменить старый на новый UUID, но я все еще получаю то же сообщение, что загрузчик не может найти устройство со старым UUID.

Итак, откуда update-grub читает старый UUID? И как мне исправить grub, чтобы он мог загружать клонированный раздел?

4
задан 26 June 2012 в 08:37

3 ответа

Я предполагаю, что вы не просматриваете / редактируете тот же самый grub.cfg, на который смотрит загрузчик. Помните, у вас есть две разные /boot/grub директории, и загрузчик должен знать, какую искать. update-grub обновляет grub.cfg в смонтированном в настоящее время /boot/grub/grub.cfg. Я предполагаю, что загрузчик смотрит на другой раздел. После того, как я закончу свою первую чашку кофе, я смогу подтвердить это, прочитав ваш пост и, возможно, сделав заметки, но сейчас это должно быть обоснованное предположение.

Я считаю, что вам нужно бежать sudo grub-install --root-directory=/ /dev/sda. Я даю полную версию для дополнительной информации - параметр --root-directory по умолчанию равен /.

Эта команда переустановит загрузчик в / dev / sda, сказав, что он ищет параметр «root-directory» (/ boot / grub) для grub.cfg. Если вы хотите, чтобы ваш grub.cfg находился в другом дистрибутиве, вы можете смонтировать его и указать другой «корневой каталог», такой как, например, /mnt/my_other_distro/, если он был смонтирован в /mnt/my_other_distro.

1112 Дай мне знать, если у тебя будут проблемы, пока я пью кофе. :)

Редактировать: ( после кофе ) Теперь я вижу одну важную проблему ... вы должны были изменить UUID для sda1, а не sda7. Затем, когда вы установили Mint на sda1, он все равно изменит его, если вы переформатируете, но если вы его не измените, он может запутаться. Изменяя UUID для старой установки Ubuntu, вы сделали недействительными все параметры монтирования в его / etc / fstab вместе с меню GRUB. Я предполагаю, что Mint не регенерирует меню, а только копирует записи, поэтому ему все равно, правильно это или нет.

Запуск update-grub исправляет grub.cfg, но не код grub в MBR; это изменяется только с помощью grub-install.

И Linux Mint не знает, что на самом деле означают записи в grub.cfg, так как он может ссылаться на диск, которого в тот момент даже не было. Я думаю, он просто добавляет новую запись к вершине существующих.

0
ответ дан 26 June 2012 в 08:37

Хорошо, я нашел решение, которое, вероятно, я должен (или не должен) делать в первую очередь.

После dd клонирования раздела Ubuntu перед установкой Linux Mint я загрузился в Ubuntu. Именно тогда я понял (глядя на таблицу разделов), что UUID был дублирован, поэтому я сгенерировал новый UUID. Но когда я установил Linux Mint, он отформатировал исходный раздел и все равно сгенерировал новый UUID. По сути, я запустил

sudo tune2fs /dev/sda7 -U <old UUID>
sudo grub-update

и соответственно сбросил fstabs, и все заработало. Во-первых, никогда не следовало изменять UUID клонированного раздела.

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

0
ответ дан 26 June 2012 в 08:37

Это останется полезным и для других, и для меня, и для меня тоже.

Редакция № 1 --------------------

http://www.linuxjournal.com/content/copy-your -linux-install-different-partition-or-drive

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

--------------- конец редактирования # 1

И я должен добавить это;

UUID всегда останется неизменным. имеет значение форматирование. Он МОЖЕТ измениться, если потребуется, только при использовании Dban или SecureDelete (который каждый может найти с помощью HaremsBootCD для всех ОС или UltimateBootCD для Windows) (потому что он выходит из системы / выключается ОС для запуска этих программ). Только SecureDelete может общаться прямо на HDD. Ни один из форматов, выполненных через / любая ОС, не может стереть UUID, даже через обычный liveCD (как объяснено / сказано выше).

Так что да, как я и догадывался, если клонированный раздел клонировал uuid (что является ОЧЕНЬ плохой идеей и неправильным управлением со стороны разработчика программного обеспечения ...), было бы безопасно вести журнал и записывать uuid как дисков, так и таблицы разделов, чтобы исправить будущий fstab (используя любой live CD для редактирования его как root ofcourse) для загрузки linux. Но я не думаю и не вижу, как клонированный будет иметь какую-либо часть корневой таблицы разделов. Раздел и таблица разделов - это две разные вещи, одна идет поверх другой как слой на столе. Таким образом, UUID должен оставаться прежним ..... если только в этой таблице не добавлен новый раздел (основной, логический или расширенный эфир)

Итак, сейчас нет нужды ... Linux - это весело потому что мы можем сделать это, но также и Linux - это боль, потому что мы должны знать, что мы должны делать и должны делать все эти "хитрые" вещи.

И я ЛЮБЛЮ / ЛЮБЛЮ форумы Ubuntu / Mint / Debian / CrunchBang / Slackware, потому что мы можем обмениваться старым и НОВЫМ решением. Не так, как (не то, что нравится и нравится большинству и мне) на форумах, посвященных архитектуре, где любое «решенное» очень устарело после 12 дней или даже хуже, и / или любой пользователь даже получает выговор за попытку сказать «спасибо» (даже после прочтения архивных руководств) (может быть, мне стоит начать делать свою собственную ОС из LFS --linux-from-scratch;) может быть проще собрать, чем спрашивать других, как у них работает, кто знает (?)

Во всяком случае, я попал сюда из поиска Google для /, если способ клонирования установки Linux. Я не только обнаружил, что это можно сделать, но и должен убедиться, что он имеет правильный UUID, о котором я не думал, кроме как просто его клонировать и загрузить.

0
ответ дан 26 June 2012 в 08:37

Другие вопросы по тегам:

Похожие вопросы: