Облачная платформаAdvanced

Изменение идентификаторов дисков в файле GRUB на UUID

Язык статьи: Русский
Показать оригинал
Страница переведена автоматически и может содержать неточности. Рекомендуем сверяться с английской версией.

Сценарии

Чтобы Linux мог правильно определять диски при загрузке файловой системы, необходимо изменить идентификатор диска в GRUB file ECS на UUID перед созданием приватного образа Linux.

Измените файл menu.lst или grub.cfg (/boot/grub/menu.lst, /boot/grub/grub.cfg, /boot/grub2/grub.cfg, /boot/grub/grub.conf или /boot/efi/EFI/euleros/grub.cfg), и настройте раздел загрузки, используя UUID.

Note

Корневой раздел, указанный в файле конфигурации, зависит от ОС. Он может быть root=/dev/xvda или root=/dev/disk.

Процедура (Partner Cloud)

  • Ubuntu 14.04: Выполните blkid для получения UUID корневого раздела. Измените файл /boot/grub/grub.cfg и используйте UUID корневого раздела для настройки загрузочного элемента. Если корневой раздел уже использует UUID, изменения не требуются. Процедура выглядит следующим образом:
    1. Войдите в ECS под пользователем root.
    2. Выведите список всех типов смонтированных файловых систем и их UUID устройств.

      blkid

      Вывод команды выглядит следующим образом:

      /dev/xvda1: UUID="ec51d860-34bf-4374-ad46-a0c3e337fd34" TYPE="ext3"
      /dev/xvda5: UUID="7a44a9ce-9281-4740-b95f-c8de33ae5c11" TYPE="swap"
    1. Запросите файл grub.cfg.

      cat /boot/grub/grub.cfg

      Вывод команды выглядит следующим образом:

      ......menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' {
      recordfail
      load_video
      gfxmode $linux_gfx_mode
      insmod gzio
      insmod part_msdos
      insmod ext2
      if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
      else
      search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
      fi
      echo 'Loading Linux 3.13.0-24-generic ...'
      linux /boot/vmlinuz-3.13.0-24-generic root=/dev/xvda1 ro
      echo 'Loading initial ramdisk ...'
      initrd /boot/initrd.img-3.13.0-24-generic
      }
    1. Проверьте, содержит ли корневой раздел в файле конфигурации /boot/grub/grub.cfg значение root=/dev/xvda1 или root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34.
      • Если root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 содержится, корневой раздел находится в формате UUID и не требует изменений.
      • Если root=/dev/xvda1 содержится, корневой раздел находится в формате имени устройства. Перейдите к 5.
    1. Определите UUID устройства корневого раздела на основе root=/dev/xvda1 (имя устройства корневого раздела) и информации о разделах, полученной при выполнении команды blkid.
    2. Откройте файл grub.cfg.

      vi /boot/grub/grub.cfg

    3. Нажмите i, чтобы перейти в режим вставки, и измените корневой раздел на формат UUID, например, с root=/dev/xvda1 на root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34.
    4. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет конфигурацию и выходит из редактора vi.
    5. Проверьте изменение.

      cat /boot/grub/grub.cfg

      Изменение считается успешным, если отображается информация, аналогичная следующей:

      ......menuentry 'Ubuntu Linux, with Linux 3.13.0-24-generic' --class ubuntu --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.13.0-24-generic-advanced-ec51d860-34bf-4374-ad46-a0c3e337fd34' {
      recordfail
      load_video
      gfxmode $linux_gfx_mode
      insmod gzio
      insmod part_msdos
      insmod ext2
      if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
      else
      search --no-floppy --fs-uuid --set=root ec51d860-34bf-4374-ad46-a0c3e337fd34
      fi
      echo 'Loading Linux 3.13.0-24-generic ...'
      linux /boot/vmlinuz-3.13.0-24-generic root=UUID=ec51d860-34bf-4374-ad46-a0c3e337fd34 ro
      echo 'Loading initial ramdisk ...'
      initrd /boot/initrd.img-3.13.0-24-generic
      }
  • CentOS 6.5: Выполните blkid для получения UUID корневого раздела. Измените файл /boot/grub/grub.conf и используйте UUID корневого раздела для настройки загрузочного пункта. Если корневой раздел уже использует UUID, изменения не требуются. Процедура выглядит следующим образом:
    1. Войдите в ECS под пользователем root.
    2. Выведите список всех типов смонтированных файловых систем и их UUID устройств.

      blkid

      Вывод команды выглядит следующим образом:

      /dev/xvda1: UUID="749d6c0c-990a-4661-bed1-46769388365a" TYPE="swap"
      /dev/xvda2: UUID="f382872b-eda6-43df-9516-5a687fecdce6" TYPE="ext4"
    1. Запросите файл grub.conf.

      cat /boot/grub/grub.conf

      Вывод команды выглядит следующим образом:

      default=0
      timeout=5
      splashimage=(hd0,1)/boot/grub/splash.xpm.gz
      hiddenmenu
      title CentOS (2.6.32-573.8.1.el6.x86_64)
      root (hd0,1)
      kernel /boot/vmlinuz-2.6.32-573.8.1.el6.x86_64 ro root=/dev/xvda2 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=autoKEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
      initrd /boot/initramfs-2.6.32-573.8.1.el6.x86_64.img
    1. Проверьте, содержит ли корневой раздел в файле конфигурации /boot/grub/grub.conf параметр root=/dev/xvda2 или root=UUID=f382872b-eda6-43df-9516-5a687fecdce6.
      • Если в файле содержится root=UUID=f382872b-eda6-43df-9516-5a687fecdce6, корневой раздел находится в формате UUID и изменений не требуется.
      • Если содержится root=/dev/xvda2, корневой раздел указан в виде имени устройства. Перейдите к 5.
    1. Определите UUID устройства корневого раздела на основе root=/dev/xvda2 (имя устройства корневого раздела) и информации о разделах, полученной с помощью команды blkid.
    2. Откройте файл grub.conf.

      vi /boot/grub/grub.conf

    3. Нажмите i, чтобы перейти в режим вставки, и измените корневой раздел на формат UUID, например, с root=/dev/xvda2 на root=UUID=f382872b-eda6-43df-9516-5a687fecdce6.
    4. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет конфигурацию и выходит из редактора vi.
    5. Проверьте изменение.

      cat /boot/grub/grub.conf

      Изменение считается успешным, если отображается информация, аналогичная следующей:

      default=0
      timeout=5
      splashimage=(hd0,1)/boot/grub/splash.xpm.gz
      hiddenmenu
      title CentOS (2.6.32-573.8.1.el6.x86_64)
      root (hd0,1)
      kernel /boot/vmlinuz-2.6.32-573.8.1.el6.x86_64 ro root=UUID=f382872b-eda6-43df-9516-5a687fecdce6 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=autoKEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
      initrd /boot/initramfs-2.6.32-573.8.1.el6.x86_64.img
  • CentOS 7.0: Run blkid to obtain the UUID of the root partition. Modify the /boot/grub2/grub.cfg file and use the UUID of the root partition to configure the boot item. If the root partition already uses UUID, no modification is required.
    1. Войдите в ECS как пользователь root.
    2. Выведите список всех типов смонтированных файловых систем и их UUID устройств.

      blkid

      Вывод команды выглядит следующим образом:

      /dev/xvda2: UUID="4eb40294-4c6f-4384-bbb6-b8795bbb1130" TYPE="xfs"
      /dev/xvda1: UUID="2de37c6b-2648-43b4-a4f5-40162154e135" TYPE="swap"
    1. Запросите файл grub.cfg.

      cat /boot/grub2/grub.cfg

      Вывод команды выглядит следующим образом:

      ......
      menuentry 'CentOS Linux (3.10.0-229.el7.x86_64) 7 (Core)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-229.el7.x86_64-advanced-4eb40294-4c6f-4384-bbb6-b8795bbb1130' {
      load_video
      set gfxpayload=keep
      insmod gzio
      insmod part_msdos
      insmod xfs
      set root='hd0,msdos2'
      if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='hd0,msdos2'4eb40294-4c6f-4384-bbb6-b8795bbb1130
      else
      search --no-floppy --fs-uuid --set=root 4eb40294-4c6f-4384-bbb6-b8795bbb1130
      fi
      linux16 /boot/vmlinuz-3.10.0-229.el7.x86_64 root=/dev/xvda2 ro crashkernel=auto rhgb quiet LANG=en_US.UTF-8
      initrd16 /boot/initramfs-3.10.0-229.el7.x86_64.img
      }
    1. Проверьте, содержит ли корневой раздел в конфигурационном файле /boot/grub2/grub.cfg параметр root=/dev/xvda2 или root=UUID=4eb40294-4c6f-4384-bbb6-b8795bbb1130.
      • Если в файле содержится root=UUID=4eb40294-4c6f-4384-bbb6-b8795bbb1130, корневой раздел находится в формате UUID и изменений не требуется.
      • Если в файле содержится root=/dev/xvda2, корневой раздел находится в формате имени устройства. Перейдите к 5.
    1. Определите UUID устройства корневого раздела на основе root=/dev/xvda2 (имя устройства корневого раздела) и информации о разделах, полученной при выполнении команды blkid.
    2. Откройте файл grub.cfg.

      vi /boot/grub2/grub.cfg

    3. Нажмите i, чтобы перейти в режим вставки, и измените корневой раздел в формат UUID, например, с root=/dev/xvda2 на root=UUID=4eb40294-4c6f-4384-bbb6-b8795bbb1130.
    4. Нажмите Esc, введите :wq и нажмите Enter. Система сохраняет конфигурацию и выходит из редактора vi.
    5. Проверьте изменение.

      cat /boot/grub2/grub.cfg

      Изменение считается успешным, если отображается информация, аналогичная следующей:

      ......
      menuentry 'CentOS Linux (3.10.0-229.el7.x86_64) 7 (Core)' --class fedora --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-229.el7.x86_64-advanced-4eb40294-4c6f-4384-bbb6-b8795bbb1130' {
      load_video
      set gfxpayload=keep
      insmod gzio
      insmod part_msdos
      insmod xfs
      set root='hd0,msdos2'
      if [ x$feature_platform_search_hint = xy ]; then
      search --no-floppy --fs-uuid --set=root --hint='hd0,msdos2'4eb40294-4c6f-4384-bbb6-b8795bbb1130
      else
      search --no-floppy --fs-uuid --set=root 4eb40294-4c6f-4384-bbb6-b8795bbb1130
      fi
      linux16 /boot/vmlinuz-3.10.0-229.el7.x86_64 root=UUID=4eb40294-4c6f-4384-bbb6-b8795bbb1130 ro crashkernel=auto rhgb quiet LANG=en_US.UTF-8
      initrd16 /boot/initramfs-3.10.0-229.el7.x86_64.img
      }