VMのLVコンテナにgrubをインストールする

VMのLVコンテナにgrubをインストールする

仮想マシンのLVM LVコンテナにgrubをインストールする際に問題があります。以下はパーティションテーブルです。

# parted /dev/mgtvg/linux2os print
Model: Linux device-mapper (linear) (dm)
Disk /dev/dm-7: 129GB  
Sector size (logical/physical): 512B/512B
Partition Table: msdos 

Number  Start   End     Size    Type      File system  Flags
 1      1049kB  6469MB  6468MB  primary   ext3         boot
 2      6469MB  11.8GB  5369MB  primary   xfs
 3      11.8GB  17.2GB  5369MB  primary   xfs
 4      17.2GB  129GB   112GB   extended               lba
 5      17.2GB  22.6GB  5369MB  logical   xfs

パーティション1には、ルートファイルシステム(/bootなし)が含まれています。 grubをインストールしてみてください:

# grub --device-map=/dev/null


    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename.]
grub> device (hd0) /dev/mgtvg/linux2os
device (hd0) /dev/mgtvg/linux2os
grub> root (hd0,0)
root (hd0,0)
 Filesystem type is ext2fs, partition type 0x83
grub> setup
setup

Error 1: Unrecognized device string
grub> 

grub.conf以下は、VMを含むLVのファイルです。

default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
serial --unit=1 --speeed=19200
terminal --timeout=8 console serial
title CentOS (2.6.32-279.22.1.el6.x86_64)
        root (hd0,0)   
        kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro root=/dev/sda1
        initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img
title CentOS (2.6.32-279.el6.x86_64)
        root (hd0,0)   
        kernel /vmlinuz-2.6.32-279.el6.x86_64 ro root=/dev/sda1
        initrd /initramfs-2.6.32-279.el6.x86_64.img

また何が必要ですか?

ベストアンサー1

LVが存在する物理パーティションではなく名前でLVを参照しようとしています。

物事の構造は次のとおりです。私は3つあります:

  • 物理ボリューム(PV)
  • ボリュームグループ(VG)
  • 論理ボリューム(LV)

私のラップトップには次のものがあります。

$ pvs
  PV         VG         Fmt  Attr PSize   PFree
  /dev/sda6  vg_grinchy lvm2 a-   304.22g    0 

メモ:PV=/dev/sda6,VG=vg_grinchy

$ lvs
  LV      VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
  lv_home vg_grinchy -wi-ao 248.53g                                      
  lv_root vg_grinchy -wi-ao  50.00g                                      
  lv_swap vg_grinchy -wi-ao   5.69g          

メモ:したがって、私のVG(vg_grinchy)には3つのLV(lv_home、lv_root、およびlv_swap)が含まれています。

次のコマンドでこれを確認できますvgs

$ vgs
  VG         #PV #LV #SN Attr   VSize   VFree
  vg_grinchy   1   3   0 wz--n- 304.22g    0 

メモ:#LV=3、#PV=1と表示されます。

これで、次のコマンドを使用してLVのフルネームを表示できますlvdisplay

$ lvdisplay |grep "LV Name"
  LV Name                /dev/vg_grinchy/lv_root
  LV Name                /dev/vg_grinchy/lv_home
  LV Name                /dev/vg_grinchy/lv_swap

ファイルにインストールするLVを指定するには、この名前を使用する必要がありますgrub.cfg

はい

以下は私のファイルの一部ですgrub.cfg

title Fedora (2.6.35.14-106.fc14.x86_64)
    root (hd0,4)
    kernel /vmlinuz-2.6.35.14-106.fc14.x86_64 ro root=/dev/mapper/vg_grinchy-lv_root rd_LVM_LV=vg_grinchy/lv_root rd_LVM_LV=vg_grinchy/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=l
atarcyrheb-sun16 KEYTABLE=us rhgb quiet
    initrd /initramfs-2.6.35.14-106.fc14.x86_64.img

もちろん、私のカーネルが以下を渡すのを見ることができます。

root=/dev/mapper/vg_grinchy-lv_root

おすすめ記事