現在の場所に収まらないプロジェクトをインポートするには、現在の場所よりも大きいパーティションに移動する必要があります。また、Windowsの仮想マシンでLinuxを実行しています。
jack@ubuntu:~$ sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL
NAME FSTYPE SIZE MOUNTPOINT LABEL
sda 20G
ââsda1 ext4 15.7G /
ââsda2 1K
ââsda5 swap 4.3G [SWAP]
sdc 40G
ââsdc1 ext4 40G work
sdb 20G
ââsdb1 ext4 20G /mnt/disk
jack@ubuntu:~$ sudo fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000750e0
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 32956415 16477184 83 Linux
/dev/sda2 32958462 41940991 4491265 5 Extended
/dev/sda5 32958464 41940991 4491264 82 Linux swap / Solaris
ベストアンサー1
/
パーティションを最後に配置すると、sda
簡単なアップグレードプロセスが実行されます。
仮想マシンをシャットダウンし、仮想マシン管理インターフェイスでRAWディスクドライブのサイズを変更します。
シングルユーザーモードで起動し、最後のパーティションのサイズを変更して新しいスペースに拡張します。
2つの異なるパーティション間に挟まれたパーティションでこれを行うと、貴重なものよりも多くの問題が発生する可能性があります。
したがって、パーティションの一部を/
新しいディスクに移動することをお勧めします。
仮想マシンをシャットダウンし、別の仮想ディスクを追加します。
新しいディスクに移動する既存のコンテンツ
/
と残りのスペースを収容できるようにサイズを変更します。 16GiBのうち14GiBを使用していて、10GiB/
だけを移動しようとしているとしましょう。/home
現在のスペースを2倍にするには、新しいドライブを20GiBにすることができます。/bin
コアオペレーティングシステムディレクトリ(、、、、、、、/boot
および/etc
ほとんど/root
)は移動したくありません。/usr
別のディスクに移動するのは安全です。/usr/share
/usr/local
可能であれば、シングルユーザーモードでバックアップを開始します。 (これにより、バックグラウンドジョブがあまり実行されない場合、後で作業が簡単になります。)
/dev
次に、新しいディスクがどのノードにあるかを調べます。持つさまざまな方法行ってこれをやってみてください。可能性は最も高いですが、/dev/sdb
たとえば/dev/sdc
、以前にマップされたオプティカルドライブの後ろに配置することもできます。/dev/sdb
説明のためにここでは仮定をします。parted
この新しい仮想ディスクを分割するために使用されます。# parted /dev/sdb (parted) mklabel gpt (parted) mkpart ext2 1 -1 (parted) quit
これは仮想ディスク全体を占有します。これにより、後でディスク容量が再び不足する場合は、上記の簡単なサイズ変更プロセスを使用できます。
関連していない多数のディレクトリ(たとえば、、など
/home
)/var
を/usr/local
移動する場合は、1つの大容量ディスクを分割するよりも、各ディレクトリに対して別々の仮想ディスクを作成することをお勧めします。パーティション化は、物理ディスクの世界で許可されているハッキングの種類です。仮想マシンを使用すると、複数の独立したハードドライブにかかるコストを削減できます。一時的な場所に新しいファイルシステムを作成してマウントします。私は通常それらをこう呼んでいます
/mnt/newhome
:# mkfs.ext4 /dev/sdb1 # mkdir -m 400 /mnt/newhome # mount /dev/sdb1 /mnt/newhome
移行するツリーの現在の内容をコピーし、コピー権限を確認します。これを行う方法はいくつかあります。
# cd /home # find . -print | cpio -pd /mnt/newhome OR # cp -aR * /mnt/newhome OR # rsync -a * /mnt/newhome
/mnt/newhome
コンテンツが信頼できることを確認してください。たとえば、df -h
とほぼ同じ値を表示しますか?du -h /home
まだ起動していない場合は、シングルユーザーモードで起動します。
既存のファイルシステムを別の場所に移動し、その上に新しいファイルシステムを配置します。
# cd / # mv home oldhome # mkdir -m 400 home # umount /mnt/newhome # mount /dev/sdb1 /home # chmod 755 home # chown root.root home
最後の2つのコマンドは単なる例です。新しいマウントポイントに、古いマウントポイントと同じ所有者、グループ、および権限を付与します。 (この最上位ディレクトリに対する権限を取得するためにコマンドをコピーする必要はありません。)
シングルユーザーモードのプロンプトが表示されたら、
exit
マルチユーザーモードで起動し続けます。 (またはたとえばinit 5
、通常の実行レベルが5の場合)、すべてが新しいファイルシステムで機能していることを確認します。(このテストを実行するために再起動しないでください。新しいファイルシステムはまだ自動的にマウントされていません。)
パーティションを正常に移動したことに満足したら、
/etc/fstab
新しいパーティションを指すように調整してください。(この回答の範囲を超えています。具体的な内容はLinuxごとに異なり、通常* ixの違いははるかに大きくなります。)
正常に再起動してください。もう一度確認してください。これはすべてうまくいきますか?古いファイルシステムではなく、新しいファイルシステムがインストールされていることを確認してください。
すべてが正しく移動されインストールされていることを確認したら、以前のコピーが占有していたスペースを確保してください
rm -rf /oldhome
。
。 :)移動するファイルシステムが複数ある場合GOTO 2
(またはすべての新しい仮想ディスクを一度に追加しない場合はステップ1)
希少な仮想ディスク(VMwareなど)の設定方法を知っているVMシステムでは、無駄なスペースを心配する必要はありません。現在使用されていないスペースを回収するには、一般的な「縮小」プロセスに従うだけです。
他の改善もあります。たとえば、オペレーティングシステムがパーティション名またはUUIDの代わりにディスクラベルを使用している場合は、-L /home
コマンドに同様の名前を指定する必要があります。mkfs.ext4
/etc/fstab