Ubuntu 14.04 не загружается после сообщения об ошибке. / TMP не может быть установлен

31

Я недавно установил Ubuntu 14.04, используя WUBI, и после установки при загрузке он показал ошибку:

Serious errors were found while checking the disk drive for /. 

Было три варианта:

press [I] to ignore, press [S] to skip mounting and press [M] to mount manually. 

После того, как я нажал I, он показал, что /tmpне может быть смонтирован, и моя Ubuntu не загружается.

  • Кто-нибудь может подсказать, пожалуйста, как решить эту проблему?
user272877
источник
@pandya Я уже видел ссылку, но ответы, похоже, не помогают мне решить проблему
user272877
Я хотел бы установить через Wubi, потому что тогда я могу удалить Ubuntu, когда я хочу без каких-либо проблем. Не могли бы вы
подсказать
Я использовал выше, и это прекрасно работает. Однако, когда я пытаюсь отредактировать загрузочную запись GRUB2; он вернется к оригиналу (даже после его сохранения). Я использовал команду: sudo gedit /etc/grub.d/10_lupin Я смог отредактировать и сохранить его (изменив ro на rw). Но после перезагрузки он возвращается к исходной загрузочной записи. Как я могу сделать это постоянным? Большое спасибо,
Святая корова, почему это вообще происходит?
Дирк

Ответы:

43
  1. В диспетчере загрузки Windows выберите Ubuntu.
  2. Нажмите любую клавишу и войдите в меню GNU Grub2.
  3. Вы можете нажать «e» для редактирования загрузочной записи GRUB2.

Вам нужно изменить загрузочную запись GRUB2 с «ro» на «rw»,

например

linux   /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk ro   quiet splash $vt_handoff

в

linux   /boot/vmlinuz-3.13.0-24-generic root=UUID=AAC884AC1F144321 loop=/ubuntu/disks/root.disk rw   quiet splash $vt_handoff

Нажмите F10, вы можете загрузиться в Ubuntu 14.04.

и вы можете исправить загрузочную запись GRUB2:

sudo vi /etc/grub.d/10_lupin

Измените строку:

linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} ro ${args}

чтобы:

linux   ${rel_dirname}/${basename} root=${LINUX_HOST_DEVICE} loop=${loop_file_relative} rw ${args}

Восстановить загрузочную запись GRUB2:

sudo update-grub
user273948
источник
Хорошо, спасибо за помощь, но последний вопрос, как я могу изменить файл grub без загрузки в Ubuntu, потому что я не могу загрузиться в Ubuntu
user272877
1. в диспетчере загрузки Windows выберите Ubuntu. 2. нажмите любую клавишу и зайдите в меню GUN Grub2. 3. Вы можете нажать «e» для редактирования команд перед загрузкой.
user273948
После выбора «Ubuntu» в диспетчере загрузки Windows, удерживайте нажатой клавишу «Shift», и должно появиться меню Grub.
gfour
Спасибо большое, моя Ubuntu наконец загрузилась! Спасибо всем
user272877
Я исправляю проблему с помощью этого ответа, но теперь, когда я перезагружаю или выключаю компьютер, после выбора ubuntu в параметрах загрузки, экран становится черным и никогда не запускается. Я перезагружаюсь вручную и затем выбираю ubuntu в опциях загрузки, в меню нажмите e, а затем F10, и он загружается нормально, всегда нужно нажимать e -> F10, чтобы иметь возможность загрузить Ubuntu. Какие-либо предложения?
Duver
6

Временное исправление - переопределение первоначального монтирования root.disk rw(чтение / запись) вместо ro(только чтение) - это хорошо. Это единственный способ загрузить Wubi после установки (или обновления) 14.04.

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

Измените файл, /usr/share/initramfs-tools/script/localкак показано (одна строка удалена, три добавлены):

--- /home/bcbc/local   2014-11-19 20:25:12.274837304 -0800
+++ /usr/share/initramfs-tools/scripts/local   2014-11-19 20:28:37.990832807 -0800
@@ -143,7 +143,9 @@
        modprobe ${FSTYPE}

        # FIXME This has no error checking
-       mount ${roflag} -o loop -t ${FSTYPE} ${LOOPFLAGS} "/host/${LOOP#/}" ${rootmnt}
+       loopdev=`losetup -f`
+       losetup ${loopdev} "/host/${LOOP#/}"
+       mount ${roflag} -t ${FSTYPE} ${LOOPFLAGS} ${loopdev} ${rootmnt}        

        if [ -d ${rootmnt}/host ]; then
            mount -o move /host ${rootmnt}/host

После внесения изменений обновите начальный виртуальный диск:

sudo update-initramfs -u

Для получения дополнительной информации и информации об исправлении см. Https://code.launchpad.net/~noorez-kassam/ubuntu/utopic/initramfs-tools/fix-for-1317437/+merge/219927.

Внимание : очевидно, что если вы сделаете некоторые опечатки при применении этого исправления, это может помешать загрузке вашей установки. Поэтому действуйте с осторожностью. И если вы не уверены, используйте более простой режим Grub. Убедитесь, что вы используете `quote, not 'для loopdev=строки.

Если вы попытаетесь это сделать и столкнетесь с проблемами, вы можете попробовать сделать несколько вещей:

  1. Если у вас более одного ядра, перейдите в меню «Восстановление» и выберите старое ядро ​​(со своими собственными initramfs).
  2. Вы можете сделать резервную копию initramfs( перед обновлением ), а затем скопировать ее поверх плохого с живого DVD / USB.
  3. Вы могли бы восстановить initramfsв chroot, но это немного связано.

Если это новая установка, то переустановка - ваш лучший вариант.

BCBC
источник
Как и вы, я пытаюсь найти лучшее долгосрочное решение этой проблемы. Опробовал ваш метод и в итоге получил много ошибок при перезагрузке, некоторые из которых указывали на отсутствующие файлы, такие как / etc / fstab. Может быть, я сделал опечатку, однако, возможно ли, что "losttup" находит первое неиспользуемое устройство петли, отличное от ожидаемого? Я должен использовать / dev / loop0 вместо этого? В настоящее время я применил более простое переопределение Grub.
Билл
@ Билл, наверное, опечатка. Если вы вставите свой код и опубликуете ссылку, я посмотрю.
2013 г.
Спасибо, bcbc. К сожалению, я не могу вставить исходный код, поскольку в итоге я удалил и переустановил wubi. Однако я буду вставлять текущий код, который я собираюсь использовать для воссоздания initramfs. Вот ссылка: pastebin.com/bRKc9fdL
Билл
@ Счёт хорошо выглядит.
Bcbc
3
Процитируем Деяния 8: 8 - Значит, в этом городе было много радости ... так же было и в доме Турлуписа в тот вечер ...! Спасибо за вашу помощь BBC. Решил мою проблему. Должно быть, это была опечатка в конце концов! Имейте в виду, мне пришлось скопировать и вставить эту часть кода в последнюю копию / usr / share / initramfs-tools / script / local, так как она была изменена с тех пор, как я разместил свой оригинальный комментарий. В противном случае это работает как шарм! То есть после того, как я изменил уязвимую строку /etc/grub.d/10_lupin обратно только для чтения. Еще раз спасибо за вашу помощь!
Билл