回答:
Live CDを使用するのが最も安全ですが、次のこともできます。
/usr
。これを行っている間、コンテンツが変更されないようにしてください。/etc/fstab
ように編集します/usr
各ステップの詳細については、以下を参照してください。
/usr
実行中に新しいパーティションをマウントすることはできません/usr
。その中には多くのファイルが開かれるためです。
を使用しますcp -a
。-a
アーカイブオプションです。manページから:
-a, --archive
same as -dR --preserve=all
...
-d same as --no-dereference --preserve=links
...
-P, --no-dereference
never follow symbolic links in SOURCE
...
--preserve[=ATTR_LIST]
preserve the specified attributes (default:
mode,ownership,timestamps), if possible additional attributes:
context, links, xattr, all
...
-R, -r, --recursive
copy directories recursively
新しいパーティションのUUIDを知る必要があります。次のようにしてマッピングを確認できます。
$ ls -l /dev/disk/by-uuid/
そして、次の行を追加し/etc/fstab
ます:
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
UUIDをUUIDに変更ext4
し、使用しているファイルシステムタイプに変更します。パーティションをセットアップした場合は、これを知っておく必要があります。
再起動後、/usr
ルートパーティション上の古いファイルは、にマウントされた新しいパーティションによって非表示になります/usr
。ただし、いくつかのマウントバインドトリックを使用して、古いファイルにアクセスしてから削除できます。
$ sudo mount --bind / /mnt
$ sudo rm -rf /mnt/usr/*
$ sudo umount /mnt
しかし、若干の誤入力(たとえば、入力しただけでEnterキーを押すsudo rm -rf /mnt
)は災害を引き起こす可能性があるため、自分がやっていることに自信がある場合、実際にダウンタイムに対処できない場合、またはダウンタイムがない場合にのみこの方法を使用しますマシンに物理的にアクセスするため、ライブCDまたはライブUSBスティックから起動できませんでした。
rsync
代わりに使用する別の答えを与えるかもしれませんか?
rsync -avz
。Rsyncを使用すると、コピーを再起動できます。通常、パーティション、ブロックデバイス、またはマシン間を移動するときに使用する必要があります。
cp
。ハードリンクは保持されません。これにより、将来パッケージのアップグレードが中断されます。たとえば、/usr/bin/s2p
と/usr/bin/psed
は同じファイルです。で移動するcp
と、そのファイルの2つの独立したバージョンが作成されます。やるrsync -aH
代わりに。
rsync -avH a/ b
は異なるrsync -avH a b
コピー、コンテンツフォルダのa
(で、a/*
最初の場合)とフォルダ自体を第二に。必ずここでスラッシュを使用してください。
使用されるほとんどのライブラリは/ usrにあるため、Ubuntuの実行中にこのディレクトリを移動することはお勧めしません。実際、これを行おうとすると、おそらくエラーメッセージが表示されます。したがって、最良の方法はLiveCDを使用することです。
cp、rsyncなどのファイルを移動/コピーするには、いくつかの方法を使用できます。シンボリックリンクが作成されるだけでなく、コピーされることを確認する必要があります。cpとrsyncの両方にこのオプションがあります。
ファイルを他のパーティションに移動した後、/ etc / fstabに別のマウントを追加して、新しいパーティションを/ usrにマウントする必要があります。
注意:自分が何をしているかわからない。ただコマンドをコピーして、他の人が示唆するようにやっているだけだ。これは間違った方法かもしれませんが、私にとってはうまくいきます(少なくとも今のところ)。
これは私がそれをやった方法です(ハミッシュの答えとコメントに従って):
新しく作成されたパーティションのすべてのファイルをコピーします(パーティションの場所に置き換えます。これは私のパーティションに似ているはずです)。
rsync -avz /usr /media/aleksandar/750b84e2-e65f-4309-ade5-5af0033a937c
この時点で、すべて/usr
がパーティションのフォルダーにコピーされたことがわかりましたが、これは機能しませんので、そのフォルダーからパーティションのルートにすべて(ファイルマネージャーを使用して)コピーし、空のフォルダーを削除しましたその後フォルダー。
編集/etc/fstab
(もちろん、ハミッシュの答えと同じですが、UUIDに置き換えてください)
UUID=634c31a5-e27c-4e33-ac67-2e22491a30c2 /usr ext4 defaults 0 2
非常に賢明ではないことが判明したステップ:現在マウントされている/usr
パーティションの名前をに変更し/usrBACKUP
、システムを再起動すると、実際には古いパーティションではなく、新しく作成されたパーティションに再起動する。その後、画面上ですべての不具合が発生し、電源キーを長押しして電源をオフにする必要がありました(私は天才です)。システムに不具合を生じさせたくない場合は、この手順をスキップしてください。
システムを再起動します
再起動後、システムモニターまたは同様のアプリケーションを開いて、新しい/usr
パーティションがマウントされているかどうかを確認し、すべてが計画どおりに進んだかどうかを安全性チェックします。
すべてが正常であることを確認したら、古い/usr
パーティションを削除できます。何か問題が発生した場合に備えて、私は私のものを保持します。
sudo mount -a
実行し続けることを許可すべきではありませんか?
rsync
これよりもはるかに適していますcp