2

Некоторое время я пробовал Linux Ubuntu в качестве своей ОС. Как и у любой ОС, у Linux есть свои недостатки, некоторые из которых являются для меня большой проблемой. Поэтому я вернулся к Windows 7.

Чтобы предотвратить изменения в моей системе, пока я ее пробовал, я установил Ubuntu на внешний жесткий диск. Я использовал этот диск в качестве портативного рабочего пространства, поэтому на нем я также установил GIMP, Aseprite, Audacity, PixiTracker, SunVox, игровой движок GoDot и некоторые видеоигры, все они связаны платформой PortableApps.com.

Когда я удалил Ubuntu с диска, я выполнил много шагов, включая полное переформатирование. Но теперь, когда я пытаюсь запустить свой компьютер с подключенным накопителем к USB-порту, я получаю это

error unknown filesystem entering rescue mode

Посмотрев на диск, я нашел только один раздел, который не является ни системным, ни загрузочным. Таким образом, на нем нет никаких следов, но Grub каким-то образом помнит предыдущую установку.

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

4 ответа4

4

1. Прежде всего войдите в BIOS и убедитесь, что в вашем порядке загрузки первым диском является ваш основной системный диск (а не загрузочные устройства USB или CDROM). В зависимости от марки компьютера также существует возможность выбора загрузочного устройства по запросу (обычно нажатием кнопки F12 ), где вы можете выбрать загрузочное устройство, в этом случае выберите основной жесткий диск вместо USB-накопителя.
Если это решит вашу проблему, выполните шаги 2,3 ниже, чтобы избавиться от GRUB на внешнем жестком диске, в противном случае Ubuntu установил GRUB на системный диск, вам нужно следовать ответу @harrymc, описанному в этом шаге, чтобы избавиться от загрузчика GRUB от системный диск.

2. Если ваш внешний диск отформатирован как MBR, этот шаг удалит загрузчик GRUB:
Запустите любой базовый Linux-диск LiveCD (SystemRescueCd - хороший кандидат), затем удалите загрузчик
с командой dd от терминала как

  dd if=/dev/zero of=/dev/sdX bs=446 count=1

Обязательно замените sdX на правильный (!!!) диск, который вы хотите лечить.

С помощью SystemRescueCd вы можете набрать startx , дождаться загрузки рабочего стола, затем меню-> система запустить "Показать файловую систему", чтобы определить имя диска, на котором необходимо удалить grub.

3. Если ваш внешний жесткий диск отформатирован как GPT, вам необходимо очистить сектор 1 (с нулями), где GPT хранит загрузчик и таблицу разделов.

Или вы можете очистить все разделы загрузчика на внешнем жестком диске независимо от того, является ли он MBR или GPT, с помощью команды dd описанной в шаге 2, как

# Clear everything. Make sure sdX is your external hard drive (!!!)
dd if=/dev/zero of=/dev/sdX count=1 bs=16MB

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

Когда вы закончите удаление загрузчика GRUB, перейдите в Панель управления-> Администрирование-> Управление компьютером и на левой панели выберите Хранение-> Управление дисками, затем выберите внешний жесткий диск, щелкните его правой кнопкой мыши и, наконец, отформатируйте.

2

Поскольку вы переформатировали внешний диск, ваша проблема не с ним. Поэтому Grub установлен на системном диске и, по-видимому, настроен на загрузку сначала с внешнего диска, а затем с Windows.

Теперь, когда вы пытаетесь загрузиться с подключенным диском, Grub обращается к первому разделу, который предположительно содержит загрузочный код Ubuntu, но вместо этого находит раздел Windows, отформатированный как NTFS, который он не может понять. Поэтому он выдает сообщение "ошибка неизвестной файловой системы". Если диск не подключен, Grub тихо загружается из Windows.

Ваша проблема - теперь классическая проблема отмены двойной загрузки Windows и Linux. У вас есть два варианта: либо только удалить внешний диск в качестве параметра загрузки, либо заменить загрузочный код загрузчиком Windows. Конечно, у вас также есть третий вариант - никогда не загружаться с подключенным диском.

Простейшим решением было бы использовать бесплатный инструмент Dual-boot Repair Windows 10, где "Automatic Repair" исправит загрузку до Windows.

Чтобы удалить только Ubuntu в качестве загрузочной конфигурации, обратитесь к статье Ask Ubuntu.
Удалите Grub и используйте загрузчик Windows.

Чтобы вручную исправить проблему при загрузке из Windows, см., Например, этот пост:
Как исправить загрузчик Windows 10 из Windows.

1

Самый быстрый и эффективный способ был бы третьим примером, который я привел, если вы используете устаревшую GRUB.

Первый пример:
Вы не можете использовать опцию fixmbr в Windows, поскольку на внешнем жестком диске не работает Windows. То, что вы можете попробовать и сделать, это использовать утилиту Ubuntu Boot Repair с оперативной загрузкой на внешнем жестком диске для восстановления загрузочных секторов:

  1. Сделайте резервную копию всех ваших данных с внешнего жесткого диска, возможно, переместите его оттуда.
  2. Загрузите и запишите Ubuntu live ISO на внешний жесткий диск (не сетевой установщик).
  3. Загрузитесь с внешнего жесткого диска (загрузитесь в Ubuntu на вашем внешнем жестком диске).
  4. Установите утилиту boot-repair с терминала:
sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair
  1. Запустите Boot Repair и используйте параметр Recommended repair . Это должно исправить основную загрузочную запись на вашем внешнем диске и удалить GRUB из него.

  2. Затем перейдите к загрузке в Windows и откройте Управление дисками, когда внешний жесткий диск подключен.

  3. Удалите все разделы на внешнем жестком диске и переформатируйте его. Убедитесь, что вы удалили все разделы и правильно отформатировали их. Не используйте быстрый формат.

  4. Получите все ваши файлы / данные обратно на внешний жесткий диск.

Смотрите связанные вопросы и ответы:
Как удалить Ubuntu и поставить Windows?


Второй пример:
Я надеюсь, что это поможет, однако, зачем вам загружаться, когда подключен внешний жесткий диск? Вы можете просто подключить его после загрузки.
Другой вариант исправить это, не пытаясь удалить GRUB:

  1. Подключите внешний жесткий диск к компьютеру.
  2. Загрузитесь и войдите в BIOS Setup.
  3. Поскольку вы объяснили, что вы всегда входите в режим grub rescue, это означает, что, пока ваш внешний жесткий диск подключен, GRUB имеет приоритет в процессе загрузки. Сделайте Windows Boot Manager первой опцией для загрузки или полного удаления GRUB в качестве опции загрузки. Поскольку это внешний жесткий диск USB, это может произойти, если загрузка с CD/USB также является вашей первой опцией.
  4. Сохраните настройки и перезагрузите компьютер.

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

См. Как отключить загрузку с USB или CD в BIOS Setup


Третий пример:
Примечание: следующее работает только для Legacy (MBR) GRUB. Не используйте для EFI GRUB.

Если эти двое не помогают или не удовлетворяют ваши потребности, есть другой путь.

GRUB Image Documentation заявляет следующее о загрузочном образе GRUB:

В системах BIOS компьютера этот образ является первой частью GRUB, которую нужно запустить. Он записывается в основную загрузочную запись (MBR) или в загрузочный сектор раздела. Поскольку загрузочный сектор ПК составляет 512 байт, размер этого образа составляет ровно 512 байт.

Таким образом, перезаписывая первые 512 байт внешнего жесткого диска нулями, вы получите диск, чистый из загрузочной записи или GRUB.

Сделать это:

  1. Загрузите Live Ubuntu ISO и запишите его на внешний жесткий диск или, если возможно, на другой USB-накопитель. Однако имейте в виду, что на следующих шагах внешний жесткий диск должен быть подключен.
  2. Загрузитесь в живую среду Ubuntu и откройте свой терминал.
  3. Найдите устройство, соответствующее вашему внешнему жесткому диску, с помощью lsblk . Если вы загружаетесь с внешнего жесткого диска, то его первый раздел должен быть смонтирован на / . Имейте в виду, что вам нужен путь ко всему диску, а не к разделу, например /dev/sdb , а не /dev/sdb1 .
  4. Перезаписать первые 512 байт:
sudo dd if=/dev/zero of=[path_to_external_hard_drive] count=1

Это скопирует 1 блок (count=1) из файла /dev/zero и запишет его в путь, указанный после of= , который должен быть вашим внешним жестким диском. Это начнется с начала сектора. В большинстве версий dd размер блока по умолчанию составляет 512 байт , поэтому нам не нужно его указывать. Однако, если вы хотите быть в безопасности, вы можете указать размер блока с помощью bs:

sudo dd if=/dev/zero of=[path_to_external_hard_drive] bs=512 count=1

bs определяет размер блока в байтах. /dev/zero - это файл, который содержит бесконечное количество символов 0 (из википедии):

/dev/zero - это специальный файл в Unix-подобных операционных системах, который предоставляет столько нулевых символов (ASCII NUL, 0x00), сколько читается из него.

Таким образом, команда скопирует 1 блок из 512 байтов из /dev/zero (то есть 1 блок, полный нулей) и запишет его в указанный путь. Если мы предполагаем, что /dev/sdb является вашим внешним жестким диском, то вот полный пример команды (не используйте /dev/sdb если вы не уверены, что это внешний жесткий диск):

sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1

В этом случае вам не нужно переформатировать внешний жесткий диск, вам не нужно перемещать файлы, однако есть вероятность, что может произойти повреждение файла, поэтому рекомендуется сделать резервную копию вашего данные. В случае повреждения файла может потребоваться повторно отформатировать внешний жесткий диск. Однако после этого на вашем диске не будет MBR/GRUB.

0

Чтобы держать вас подальше от сложных команд, я рекомендую использовать RMPrepUSB. Просто выберите свой диск, затем нажмите кнопку "Очистить" внизу. Это сотрет MBR.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .