16394


ハードディスクが 2 個あり、A と B だとします。

  1. AとBのそれぞれに CentOS 7 を入れて、AとBどちらからでも起動できるようにする
  2. AからB、BからAのように異なるパーティションのデータを見えるようにする

どうすればよいですか？


CC BY-SA 3.0
2015-09-07T14:59:45.263
16351
2015-09-08T14:57:22.830
2015-09-07T23:17:12.587
7676
12221
question
linux centos
CentOS 7 のパーティションの分け方


RAID1的なものを求めているのでは、ないとして。

Aに、CentOSをinstallする。  
Bにも、CentOSをinstallする。

で、2つめのCentOSをインストールすれば、普通は、boot selectorのGRUBのメニューに、boot対象の２つのCentOSが、載っている。

で、普通は、FSの問題はないから、それぞれの/etc/fstab
の記述をいじってやれば、Aでbootしても、BのFSはmountされてるし、Bでbootしても、AのFSは、mountできる。

しかし、こういうシステムは、あんまり感心しない。というのも、今、Aでbootしているのか、Bでbootしているのか、間違えて、消してはいけないファイルを消したりしかねないので。


CC BY-SA 3.0
2015-09-08T08:00:36.700
16376
2015-09-08T08:00:36.700
75
16351
answer


> AとBのそれぞれに CentOS 7 を入れて、AとBどちらからでも起動できるようにする

EFI が前提ですが EFI ブートエントリーに A，B それぞれの ブートローダを登録すれば マザーボードの 起動デバイスの選択で A, B
どちらからでも起動できます。以下 Disk A = sda、Disk B = sdb とします。

sda に OS-A をインストール

[code]

    インストール先
      /boot       sda2
      /boot/efi   sda1
      /           sda の好きなところに (※１)
      swap        sda の好きなところに (※１)
    
[/code]

sdb に OS-B をインストール

[code]

    インストール先
      /boot       sdb2
      /boot/efi   sdb1
      /           sdb の好きなところに (※２)
      swap        sdb の好きなところに (※２)
    
[/code]

(※1) 今回は sda 上に Logical Volume「centos7a」を作成  
(※2) 今回は sdb 上の Logical Volume「centos7b」を作成

インストールしたOSにログインして EFI Boot Manager のエントリを確認

[code]

    # efibootmgr -v
    BootCurrent: 0004
    BootOrder: 0004,0005,0000,0001,0002,0003
    Boot0000* EFI DVD/CDROM ACPI(a0341d0,0)PCI(1,1)ATAPI(1,0,0)
    Boot0001* EFI Hard Drive        ACPI(a0341d0,0)PCI(d,0)SATA(0,0,0)
    Boot0002* EFI Hard Drive 1      ACPI(a0341d0,0)PCI(d,0)SATA(1,0,0)
    Boot0003* EFI Internal Shell    MM(b,3fc4f000,3ffbefff)FvFile(7c04a583-933e-4f1c-ad65-e05268d0b4d1)
    Boot0004* CentOS        HDD(1,800,64000,bd4164f0-88fc-4d71-b3ee-64b246027aab)File(\EFI\centos\shim.efi)
    
[/code]

デフォルトのエントリを消して「CentOS7 A」と「CentOS7 B」というエントリを作ります。

[code]

    # efibootmgr -b 4 -B     ← 0004 のエントリを消す
    # efibootmgr -c -d /dev/sda -p 1 -l '\EFI\centos\shim.efi' -L 'CentoOS7 A'
    # efibootmgr -c -d /dev/sdb -p 1 -l '\EFI\centos\shim.efi' -L 'CentoOS7 B'
    
[/code]

最終的に次のようになります。

[code]

    # efibootmgr -v
    BootCurrent: 0004
    BootOrder: 0005,0004,0000,0001,0002,0003
    Boot0000* EFI DVD/CDROM ACPI(a0341d0,0)PCI(1,1)ATAPI(1,0,0)
    Boot0001* EFI Hard Drive        ACPI(a0341d0,0)PCI(d,0)SATA(0,0,0)
    Boot0002* EFI Hard Drive 1      ACPI(a0341d0,0)PCI(d,0)SATA(1,0,0)
    Boot0003* EFI Internal Shell    MM(b,3fc4f000,3ffbefff)FvFile(7c04a583-933e-4f1c-ad65-e05268d0b4d1)
    Boot0004* CentOS7 A     HDD(1,800,64000,e2f4a240-71e1-45da-9822-1dc34e42247f)File(\EFI\centos\shim.efi)
    Boot0005* CentOS7 B     HDD(1,800,64000,bd4164f0-88fc-4d71-b3ee-64b246027aab)File(\EFI\centos\shim.efi)
    
[/code]

再起動して、マザーボードの 起動デバイスを選ぶメニューを開きます。  
マザーボードによって 操作方法が違うのでマニュアル等で確認してください。  
( F8とかF10、F12あたりのキーだと思います )

起動デバイスの一覧に `efibootmgr` で登録したエントリが表示されるので  
`CentOS7 A` か `CentOS7 B` を選択して OS（と言うかそれぞれのGrub）を起動します。

> AからB、BからAのように異なるパーティションのデータを見えるようにする

OS-A から B のデバイスをマウントします。

  1. マウントポイトを作成 
    * `mkdir /centos7b`
  2. B の 論理ボリューム または パーティションをマウント 
    * `mount -t xfs /dev/mapper/centos7b-root /centos7b`
  3. 起動時に自動マウントしたいなら /etc/fstab に記述 
    * `vi /etc/fstab`

> /dev/mapper/centos7b-root /centos7b xfs defaults 0 0

OS-B から A をマウントします。


CC BY-SA 3.0
2015-09-08T14:57:22.830
16394
2015-09-08T14:57:22.830
5008
16351
answer