web-dev-qa-db-ja.com

/の下の異なるディスクから複数のディレクトリを永続的にマウントします

SSDとHDDを持っています。 /var/srv/tmpなどの一部のディレクトリはHDDにあり、/boot/usr/libはSSDにあります。しかし、ディレクトリごとに個別のパーティションを作成する必要がありますか? 2つほどのパーティションが欲しいです。ディスクごとに1つ、必要に応じてディレクトリを配布します。それは可能ですか、そしてどのように?

シンボリックリンクについて聞いたことがあります、mount --bindmhddfsしかし:

  • シンボリックリンクはcpのようなツールでは異なる方法で処理されるため、メインシステムディレクトリをシンボリックリンクしても安全かどうかはわかりません。
  • fstabmount --bindまたはmhddfsをどのように使用できるかわかりません
2
piotrek

たくさんのパーティションを持たせたくなく、物を移動する柔軟性も必要な場合は、[〜#〜] lvm [〜#〜]

SSDに/bootパーティションを作成し、さらに2つの大きなパーティションを作成します。1つはHDDに、もう1つはSSDに作成します。これらの2つのパーティションは、LVMの物理ボリューム(PV)になります。それらをボリュームグループ(VG)に追加してから、目的のPV上の各ディレクトリに論理ボリューム(LV)を作成します。後で/varがHDDではなくSSDにある必要があることがわかった場合は、 pvmove を使用できます。対応するLVをHDDからSSDに移動します。

例:

pvcreate /dev/disk/by-id/hdd-part1
pvcreate /dev/disk/by-id/sdd-part2 # part1 is /boot
vgcreate my_vg /dev/disk/by-id/hdd-part1 /dev/disk/by-id/sdd-part2
lvcreate -n root -L 6G my_vg /dev/disk/by-id/sdd-part2
lvcreate -n var -L 2G my_vg /dev/disk/by-id/hdd-part1
lvcreate -n srv -L 10G my_vg /dev/disk/by-id/hdd-part1
pvmove -n var /dev/disk/by-id/hdd-part2 /dev/disk/by-id/sdd-part2

pvmoveも、物理エクステント(PE)と呼ばれるPVのフラグメントのみを移動できることを強調したいと思います。 PEのデフォルトサイズは4MiBで、VGの作成時に設定できます。

2

私はこれを使用したことはありませんが、ssdデバイスで/ディレクトリをマウントできると思います。次に、/ hddという名前のフォルダーを作成します。その後、/ hdd/var/hdd/srv/hdd/tmpのような目的のフォルダーを作成します。

そして、バインドマウントを使用してこれらのエントリを更新します

mount --bind /hdd/var /var
mount --bind /hdd/tmp /tmp

/ boot、/ usr、/ libフォルダーを作成するだけです。再マウントする必要はありません。

1
cavila

バインドマウントは、あなたがやろうとしていることを達成するはずです。 fstabではバインドマウントを簡単に使用できます。バインドマウントのfstabエントリは次のようになります。

/path/to/original /mount/point none bind 0 0

最初に/にマウントする必要があることに注意してください。そのため、SSDを/にマウントしてから、必要に応じてHDDからさまざまなディレクトリをバインドマウントすることをお勧めします。したがって、次のようなfstab(ext4パーティションを想定し、必要に応じて変更します)

### /etc/fstab ###

# Mount SSD to /
/dev/disk/by-uuid/your-ssd-partition-uuid / ext4 0 1

# Mount HDD somewhere (in this case /mnt/hdd)
/dev/disk/by-uuid/your-hdd-partition-uuid /mnt/hdd ext4 0 2

# Bind mounts
/mnt/hdd/var /var none bind 0 0
/mnt/hdd/srv /srv none bind 0 0
/mnt/hdd/tmp /tmp none bind 0 0

/専用の「ルート」ディレクトリをssdに置くこともできます。これにより、fstabは次のようになります。

### /etc/fstab ###

# Mount SSD somewhere
/dev/disk/by-uuid/your-ssd-partition-uuid /mnt/ssd ext4 0 1

# Mount HDD somewhere (in this case /mnt/hdd)
/dev/disk/by-uuid/your-hdd-partition-uuid /mnt/hdd ext4 0 2

# Mount /
/mnt/ssd/root / none bind 0 0

# Other Bind mounts
/mnt/hdd/var /var none bind 0 0
/mnt/hdd/srv /srv none bind 0 0
/mnt/hdd/tmp /tmp none bind 0 0
/mnt/ssd/lib /lib none bind 0 0
/mnt/ssd/usr /usr none bind 0 0
1
icasdri