web-dev-qa-db-ja.com

Ubuntu 18.04でのゼロフリー

Windows 10 proホストでVM VirtualBoxの開発にUbuntu 18.04を使用しています。ここからの手順に従って、以前に仮想ハードドライブを圧縮しました。 https://www.howtogeek。 com/312883/how-to-shrink-a-virtualbox-virtual-machine-and-free-up-disk-space /

通常のアップデートとは別に-私はそれをいじりませんでした(最近virtualbox guesの追加のためのアップデートをインストールしたばかりです)

以前は、/ dev/sda1が1つしか表示されませんでした-今日は3つあり、それらのいずれかでzerofreeを実行しようとすると、デバイスがrwにマウントされていることがわかります

enter image description here

私もここでいくつかの指示に従っていくつかのサービスを停止し、再マウントしようとしましたが、うまくいきませんでした

https://unix.stackexchange.com/questions/42015/mount-is-busy-when-trying-to-mount-as-read-only-so-that-i-can-run-zerofree

まだマウントポイントがビジーであると表示されます

最近の更新が原因でこれが発生したかどうかはわかりませんか?また、vmwareゲストの追加をアンインストールしてテストしましたが、動作しませんでした

提案?

5
Danish

コメントの1つで述べたように、3つのパーティション(sda1、sda2、sda3)がマウントされており、他の目的で使用されるいくつかの一時ファイルシステムがあります。

zerofreeのマニュアルは、これをファイルシステムで実行したい場合、そのファイルシステムを読み取り専用でマウントするか、マウント解除する必要があることを示しています。 Ubuntuを実行しているときは、コンピューターの/であるルートパーティション/dev/sda1がマウントされているため、コマンドは失敗します。

/dev/sda1zerofreeを実行する場合は、ブート可能なUSBまたはISOイメージなどの代替デバイスからブートするか、代替Linuxイメージに対してchrootを実行する必要があります。参照するリンクには、ルートパーティションでこのプログラムを実行する方法に関する特定の指示があります。 Linuxでこのプログラムを使用する方法に関する指示を再度お読みください。

  • OSがロードされる前にGrubを起動してアクセスする
  • GRUBメニューから「詳細オプション」を選択します
  • 復旧モードのセッションを開始します
  • 「ルート」ログインを使用
  • ディスクを識別する
  • zerofreeを実行します
  • マシンを停止します
  • vMの電源を切って再起動する

2019-01-22

現在のバージョンのUbuntuでは、リカバリセッションからzerofreeを実行するのが難しくなります。この場合、ライブUSBからこのプログラムを実行する方が簡単です。

  • 現在のUbuntu isoファイルをダウンロードする
  • Ubuntu isoでライブUSB/CDを作成します
  • ライブメディアからデバイスを起動します(これはVMでも実行できます)。
  • コマンドSudo apt install zerofreeを使用して、プログラムzerofreeをインストールします(まだインストールされていない場合)。
  • コマンドを実行する
  • マシンを再起動します
4
Charles Green

Charles Greenの回答にコメントを追加しますが、評判が十分ではありません。

zerofreeコマンドを実行すると、/dev/sda1パーティションが読み書き可能としてマウントされているというエラーが表示される場合があります。この場合、そのようなパーティションを読み取り専用として再マウントする必要があります。

mount -n -o remount,ro -t ext2 /dev/sda1 /

here の説明に従って、zerofreeコマンドを再実行します

3
Matt07

私のために働いたもの(いくつかの関連する質問とフォーラムからの回答を組み合わせて):

  • VirtualBox 5.2.10
  • ホストOSとしてのWindows 10
  • ゲストOSとしてのUbuntu 18.04

最初にzerofreeをインストールします。

Sudo apt-get install zerofree

0を作成して再利用するスペースを確保します(不要なファイルをすべて削除し、ゴミ箱を空にします)

GRUBメニューから再起動します(Ubuntuの起動中にEscキーを押します)

Advanced options for Ubuntu > Recovery Mode (choose highest version number)

Recovery MenuからDrop to root Shell Promptを選択します

dfでパーティションを取得します

df

zerofreeを実行してみてください

zerofree /dev/sda1

パーティションは読み書き可能で、エラーなしでエラーを実行するには読み取り専用としてマウントする必要があります。

/dev/sda1がrwとしてマウントされているなど、zerofreeからエラーが発生した場合、続行するには読み取り専用としてマウントする必要があります。

/dev/sda1または目的のパーティションを読み取り専用としてマウントして、zerofreeを使用するには:

最初にディスクに書き込むプロセスをすべて停止して、mount /: mount busyエラーが発生しないようにします

systemctl stop systemd-journald.socket
systemctl stop systemd-journald.service

スワップパーティションが有効になっているかどうかを確認します。

swapon -s

有効にした場合、無効にします

Sudo swapoff -a

最後に、dev/sda1を読み取り専用としてマウントできるはずです。

mount -n -o remount,ro -t ext2 /dev/sda1 /

最後にzerofreeを実行します

zerofree /dev/sda1

zerofreeが完了したら、Ubuntuをシャットダウンします

halt

最後に、ホストOS(私の場合はWindows 10)で、vdiを圧縮してスペースを再利用します。

VBoxManage.exe modifymedium disk "C:\path\to\disk.vdi" --compact
2
Emmanuel N K