パーティション/dev/sdb1
とパーティション/dev/sdb2
があります
どちらも/etc/fstab
に適切なUUIDであり、/opt
および/home
としてマウントされています。
ファイルを失うことなくそれらをマージしたい
これは、すべてのファイルを移動せずにコマンドラインから実行できますか?
一方のパーティションを削除してもう一方のパーティションのサイズを変更することはできますが、私は気づいていません: http://www.howtoforge.com/linux_resizing_ext3_partitions
明らかにそれが機能するためには、他の場所の1つのパーティションにデータを格納するのに十分なスペースが必要です。
いいえ、ファイルを移動する必要があります。
それでもまだ問題があります。パーティションを「/ home」としてマウントし、「/ home/opt」を/ optにシンボリックリンクする必要があります。
マージと言うとき、現在/ optと/ homeに割り当てられているすべてのスペースを使用できる1つのファイルシステムが必要だと思いますか?これを行う方法を知っている唯一の「正しい」方法は、パーティションを再作成し、それらをLVM物理ボリュームの一部にして、その上に論理ボリュームを作成することです。
一方に割り当てられたスペースを借りて、もう一方で使用する必要がありますか?シンボリックリンクを使用したくない場合は、mount --bind
を使用できます。
/ dev/sdbと/ dev/sdcでよろしいですか?慣例により、/ dev/sdbおよび/ dev/sdcは個別のディスクであり、ディスク上のパーティションではありません。通常、ディスクパーティションには番号が関連付けられています(つまり、/ dev/sdb1、/ dev/sdb2、/ dev/sdc1など)。別々の物理ハードドライブ上のパーティションをマージすることはできません。データを一方から他方に移動する必要があります。
他の人がすでに言っているように、それらをマージすることは実際には不可能です。データを移動し、パーティションのサイズを適切に変更する必要があります。
/opt
と/home
をマージするには、一方を他方の内部に配置する必要があります。
たとえば、/home
-> /opt/home
です。
次に、ln -s/home/opt/homeを実行します。
またはそれ以上:mount --bind /opt/home /home
またはfstabエントリは次のとおりです。/opt/home /home none bind
実際に/etc/fstab
ファイルに以下を追加しました。 (実際、私の実際の1つは、[/dev/sdb1
]の代わりにパーティションのUUIDを使用します)
/etc/fstab
/dev/sdb1/share ext3 noatime、errors = remount-ro 0 1 /share/home/home none bind
Inodeのように、ファイルシステム内で一意であることが期待されるため、マージは実行できませんが、2つある場合は繰り返されます。内部ファイルシステム構造も同じように競合します。
ファイルシステムを別のファイルシステムに吸収することは理論的には実現可能ですが、まれなユースケースに対応するツールはバグのリスクが高く、致命的な結果をもたらす可能性があるため、試みられたとは思いません。バックアップを作成する必要があります。バックアップができたので、インプレース変換は必要ありません。これを実装したい場合、最も近いツールはbtrfs-convertです。これは、両方のファイルシステムを同じパーティションに保持することでext4ファイルシステムを貪食し、btrfs構造はext4構造を参照し、コピーオンライトは新しいファイルがbtrfsであることを保証します。 -のみ。
これはうまくいく可能性があります:
# copy files preserving attributes
cp -Rp /home /opt # --recursive --preserve
# comment out old /home entry
Perl -pie'$_ = "#$_" if m[/home]' /etc/fstab
# add a bind entry to the end of fstab
echo /opt/home /home none bind >> /etc/fstab
# unmount both partitions
umount /home
umount /opt
# remove original /home partition
# resize /opt partition to use the freed space
# could also just restart here
mount /opt
mount /home
各行にSudo
を追加するか、root
として実行する必要があります[Sudo bash
]。