以下の場合があります。
Ubuntu 14.04のインストールをバージョン22.04にアップグレードする必要があります。ハードドライブを再パーティション化し、以前の14.04インストールを完全に消去する必要があります。 Ubuntu 14.04はハードドライブでLVMを使用します。
Ubuntu 22.04 .isoファイルをRAMにロードしてから、RAMから.isoファイルを起動するようにGRUBを設定できますか? GRUBを変更してハードドライブ(Ubuntu 22.04を含む)から.isoファイルを起動できましたが、ハードドライブが使用中のため、再パーティションできません(「toram」オプションを使用してLinuxエントリをロードしたにもかかわらず)。 GRUB) 。
Ubuntu 22.04を使用してUSBスティックからシステムを起動すると、ハードドライブを再パーティションできます。ただし、ハードドライブからインストールし、USBスティックなしで新しくインストールする方法が必要です。遠隔地にコンピュータが数台あり、現場に行かずに再インストールできる必要があります。
答え1
そうではありません。 Grubがすることはカーネル/initrdをロードして引数を渡すだけです。その後、UbuntuはRAMに独自にロードされます。 Grubはこのプロセスにもはや関与しません。
toram
Ubuntuのkernel / initrdによって実装された関数です。他のライブ画像は、同様の機能に異なる名前を使用したり、まったく実装しないことがあります。
通常、この機能が機能するには十分なメモリが必要です。メモリが制限されているシステムでは、完全に失敗する可能性があります。イメージはRAMに完全に入る必要があり、実際にインストール操作を実行するのに十分なRAMが必要です。
toram
コマンドラインからカーネルパラメータにあることを確認できます。
$ grep toram /proc/cmdline
… toram …
次の出力は、Ubuntu 22.04デスクトップamd64を使用して生成されました。
df
起動後の出力toram
(/dev/shmから/cdromへ):
$ df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 972M 1.5M 971M 1% /run
/dev/shm 3.8G 3.6G 182M 96% /cdrom
/cow 4.8G 58M 4.7G 2% /
tmpfs 4.8G 0 4.8G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 4.8G 0 4.8G 0% /tmp
tmpfs 972M 128K 972M 1% /run/user/999
df
無効の場合、出力toram
(/dev/usbstick は /cdrom で、他はインストールされません):
$ df -h
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 995092 1496 993596 1% /run
/dev/usbstick 3737140 3737140 0 100% /cdrom
/cow 4975444 58760 4916684 2% /
tmpfs 4975444 0 4975444 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 4975444 0 4975444 0% /tmp
tmpfs 995088 120 994968 1% /run/user/999
free
イネーブル後の出力toram
(3.6Gi共有、4.9Gi使用可能):
$ free -h
total used free shared buff/cache available
Mem: 9.5Gi 736Mi 4.4Gi 3.6Gi 4.4Gi 4.9Gi
Swap: 0B 0B 0B
free
無効の場合、出力toram
(81Mi共有、8.5Gi使用可能):
$ free -h
total used free shared buff/cache available
Mem: 9.5Gi 727Mi 4.4Gi 81Mi 4.4Gi 8.5Gi
Swap: 0B 0B 0B
これはシステムによって異なるように見えるかもしれませんが、おおよその動作方法は次のとおりです。サーバーまたはネットワークブートイメージは、RAMの要件が異なる場合があります。
答え2
解決策が見つかりましたこここれがうまくいくかどうかテストしました。
簡単に言えば、手順は次のとおりです。
- 既存のUbuntu 22.04 ISOインストールファイルを一時的な場所に抽出します。
- ファイルを
casper/initrd
一時的な場所に抽出します。 - ファイルに次の行を追加します
casper/scripts/casper-bottom/05mountpoints
(ファイルの最後の行の直前)。
if grep -q '^[^ ]* /isodevice ' /proc/mounts; then
mkdir -p /root/isodevice
mount -n -o move /isodevice /root/isodevice.
fi
(実際にif文をスキップし、mkdirおよびmountコマンドのみを追加しました)
- initrdファイルを再パッケージして元のファイルを置き換えます。
- ISO ファイルを再パッケージします。
- Grubが見つかるように変更されたISOファイルをハードドライブにコピーします。
- コンピュータを再起動し、
toram
grubのオプションを使用してISOファイルを起動します。 - ターミナルウィンドウを開き、次のコマンドを入力します。
sudo losetup -d /dev/loop0
sudo umount /isodevice
- これで、同じハードドライブにハードドライブを再パーティション化し、Ubuntu 14.04の代わりにUbuntu 22.04をインストールできます(通常のアップグレード手順である16.04 - > 18.04 - > 20.04を実行しなくても機能しません)。
これらの手順がないと、Ubuntu 22.04は起動中のハードドライブを再分割することはできず、GPartedは使用中のファイルシステムがあると文句を言います。