Grub возвращает “Файл не найден” при загрузке с нового диска с Debian Jessie

Вопрос или проблема

Я установил Debian Jessie на новый жесткий диск и хотел загрузиться с этого нового диска. В конце настройки Debian я выбрал настройку Grub. Но при загрузке Grub попадает в режим восстановления с ошибкой “Файл не найден”. Я пробовал несколько руководств, которые нашел, чтобы снова все запустить, но без успеха.

Вот моя конфигурация (я загрузился с live-дистрибутива Knoppix)

knoppix@Microknoppix:~$ lsblk -f
NAME   FSTYPE  LABEL        MOUNTPOINT

sda                         
└─sda1 ext4                 
sdb                         
├─sdb1 ext4                 
├─sdb2                      
└─sdb5 swap                 
sdc                         
└─sdc1 ntfs    Stock        
sdd                         
├─sdd1 ext4    Debian       
├─sdd2                      
└─sdd5 swap                 
sdh                         
└─sdh1 ntfs    My Passport  
sr0    iso9660 KNOPPIX      /mnt-system
sr1    udf     WD SmartWare 
zram0  swap                 [SWAP]
cloop0 iso9660 KNOPPIX_FS   /KNOPPIX

blkid

 /dev/cloop0: LABEL="KNOPPIX_FS" TYPE="iso9660" 
 /dev/zram0: UUID="770d53d4-32d4-4810-988a-ffb80edecc8f" TYPE="swap" 
 /dev/sda1: UUID="2a0bdecf-9074-40de-8d23-bcaf01af17bb" TYPE="ext4" 
 /dev/sdb1: UUID="a4eaeb3b-27d1-4285-a364-fcdfa601fb82" TYPE="ext4" 
 /dev/sdb5: UUID="76381585-358a-46a1-bc16-feb51b08fe90" TYPE="swap" 
 /dev/sdc1: LABEL="Stock" UUID="A2904C19904BF1F9" TYPE="ntfs" 
 /dev/sdd1: LABEL="Debian" UUID="c45c0acc-f414-4c3e-a4ba-b3c1a33c3cbd"    TYPE="ext4" 
 /dev/sdd5: UUID="2f0c8892-f4a8-4312-bc19-1e8d72f23e6c" TYPE="swap" 
 /dev/sr0: LABEL="KNOPPIX" TYPE="iso9660" 
 /dev/sdh1: LABEL="My Passport" UUID="325220A852207331" TYPE="ntfs" 
 /dev/sr1: LABEL="WD SmartWare" TYPE="udf" 

parted

(parted) print all                                                  
Model: ATA Maxtor 7V250F0 (scsi)
Disk /dev/sda: 251GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size   Type     File system  Flags
 1      1049kB  251GB  251GB  primary  ext4         boot

Model: ATA Maxtor 7V300F0 (scsi)
Disk /dev/sdb: 300GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End    Size    Type      File system     Flags
 1      1049kB  284GB  284GB   primary   ext4
 2      284GB   300GB  16.1GB  extended
 5      284GB   300GB  16.1GB  logical   linux-swap(v1)

Файл grub.cfg содержит это, что выглядит корректно

### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
    set gfxpayload="${1}"
}
set linux_gfx_mode=
export linux_gfx_mode
menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-2a0bdecf-9074-40de-8d23-bcaf01af17bb' {
    load_video
    insmod gzio
    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
    insmod part_msdos
    insmod ext2
    set root="hd0,msdos1"
    if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1  2a0bdecf-9074-40de-8d23-bcaf01af17bb
    else
      search --no-floppy --fs-uuid --set=root 2a0bdecf-9074-40de-8d23-bcaf01af17bb
    fi
    echo    'Загрузка Linux 3.16.0-4-amd64 ...'
    linux   /boot/vmlinuz-3.16.0-4-amd64 root=UUID=2a0bdecf-9074-40de-8d23-bcaf01af17bb ro  quiet
    echo    'Загрузка начального ramdisk ...'
    initrd  /boot/initrd.img-3.16.0-4-amd64
}

Обратите внимание, что файлы .mod находятся в отдельной директории /boot/grub/i386-pc. Это нормально?

Спасибо за помощь в понимании того, что не так и как это решить?

Строка set root="hd0,msdos1" в вашей конфигурации grub говорит grub, что корневая файловая система, с которой вы хотите работать, находится в первом разделе первого диска, который соответствует /dev/sda1.

Ваш вывод parted показывает, что для /dev/sda1 установлен флаг загрузки, но другой раздел, /dev/sdd1, помечен как “Debian”, и я предполагаю, что ваша корневая файловая система находится там. Если это так, вам нужно будет отредактировать ваш grub.cfg, чтобы grub работал с правильным диском.

Я рекомендую сделать резервную копию вашего grub.cfg, а затем изменить строку set root="hd0,msdos1" на set root="hd3,msdos1" и повторить это изменение везде, где вы видите упоминание hd0. Затем используйте parted, чтобы установить флаг загрузки для /dev/sdd1 и попробуйте загрузить Debian. Удачи!

Ответ или решение

Ваша проблема с загрузчиком GRUB на новом диске с Debian Jessie может быть вызвана неверными настройками корневого раздела в файле конфигурации GRUB. По вашему описанию, видно, что GRUB не может найти необходимые файлы для загрузки системы, так как он пытается обратиться к неправильному разделу.

Анализ текущей ситуации

Ваша система была установлена на /dev/sdd1 (раздел с меткой "Debian"), однако в конфигурационном файле GRUB указано, что корень системы находится на "hd0,msdos1", что соответствует /dev/sda1. Тем не менее, именно этот раздел не имеет файлов загрузки Debian.

При анализе вывода команд lsblk -f и parted видно следующее:

  1. У вас несколько дисков: sda, sdb, sdc, sdd.
  2. Раздел /dev/sdd1, на котором установлена система Debian, не указан как загрузочный (bootable), тогда как /dev/sda1 имеет установленный флаг загрузки.

Решение проблемы

  1. Подготовка конфигурации GRUB:

    • Сделайте резервную копию текущего файла конфигурации GRUB:
      cp /boot/grub/grub.cfg /boot/grub/grub.cfg.bak
  2. Редактирование grub.cfg:

    • Измените строку set root="hd0,msdos1" на set root="hd3,msdos1" (это соответствует /dev/sdd1, если считать диски как hd0, hd1 и т.д.).
  3. Измените все упоминания hd0:

    • Убедитесь, что все другие упоминания hd0 также изменены на hd3 в файле grub.cfg.
  4. Установка флага загрузки:

    • Установите флаг загрузки для раздела /dev/sdd1, где установлена Debian:
      sudo parted /dev/sdd set 1 boot on
  5. Обновление GRUB:

    • После внесения изменений выполните команду для обновления конфигурации GRUB:
      sudo update-grub

Дополнительные рекомендации

Если указанная процедура не сработает, можно попробовать переустановить загрузчик GRUB на правильный диск:

  1. Загрузитесь с Live USB и откройте терминал.
  2. Подмонтируйте ваш корневой раздел:
    sudo mount /dev/sdd1 /mnt
  3. Смонтируйте необходимые виртуальные файловые системы:
    sudo mount --bind /dev /mnt/dev
    sudo mount --bind /proc /mnt/proc
    sudo mount --bind /sys /mnt/sys
  4. Переходите в вашу систему:
    sudo chroot /mnt
  5. Переустановите GRUB:
    grub-install /dev/sdd
    update-grub
  6. Выйдите из chroot и размонтируйте все:
    exit
    sudo umount /mnt/dev
    sudo umount /mnt/proc
    sudo umount /mnt/sys
    sudo umount /mnt

Заключение

После выполнения всех указанных шагов перезагрузите систему. Убедитесь, что в BIOS установлено правильное устройство загрузки, если проблема не решилась. Следуя вышеприведенным инструкциям, вы сможете устранить проблему с загрузкой и настроить GRUB на корректную работу с установленной системой Debian. Удачи!

Оцените материал
Добавить комментарий

Капча загружается...