プロンプトに反応することなく、新しいUbuntuバージョンにアップグレードするにはどうすればよいですか?
私は今12.04にいますが、12.10をインストールしたいと思います。更新を開始すると、通常はものをダウンロードしてから質問をし、少しインストールして、質問をします。プロセスを開始して、数時間後に立ち去って終了させたいと思います。/etcなどの構成ファイルを自動的に更新することに問題はありません。それでは、無人アップグレードを開始する方法は?
次のコマンドは、プロンプトなしで新しい安定版リリースにアップグレードします。
do-release-upgrade -f DistUpgradeViewNonInteractive
次のコマンドは、プロンプトなしで現在の開発リリースにアップグレードします。
do-release-upgrade -d -f DistUpgradeViewNonInteractive
私はそれをテストしていませんが、質問が発生したときにデフォルトのアクションを実行するだけのようです。また、スクリプトが長すぎるとハングします。
特定のパッケージの構成に不満がある場合は、dpkg-reconfigure
を後で使用する必要がありますが、ほとんどの場合は問題ありません。
ソース: http://awaseroot.wordpress.com/2012/04/29/ubuntu-release-upgrade-fully-automatic-non-interactive-upgrade/ リンクには、これを行う他の方法もあります。
以前の回答を拡張するために、sshを介したパスワードなしのアップグレードを使用して、ボックスを最新バージョンにアップグレードし、受け入れられた回答と同じようにリモートで行う方法を次に示します。 自分のブログエントリ からコピーされます。
これらの手順はすべて、パッケージリポジトリが機能していることを前提としています。つまり、apt-get updateを実行すると、バージョンが古いために多くの404が表示されません。最初にそれを修正する必要があります。そのため この回答を参照 です。
Sudo apt-get update
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
パスワードを入力せずにSudoを使用してdo-release-upgradeを実行できるユーザーのリストに自分を追加するには、次を実行します。
Sudo visudo -f /etc/sudoers.d/do-release-upgrade.
そして、次の行を追加し、もちろん自分のユーザー名をmy-usernameに置き換えます。
my-username ALL=NOPASSWD: /usr/bin/do-release-upgrade
ログアウトして、コンピューターから次のコマンドを実行します。入力を求めるプロンプトを表示せずにアップグレードを実行し(デフォルトのすべての回答を受け入れます)、コンピューターが再起動するのを待ってから、再度アップグレードを試みます。最新バージョンにアップグレードされるまで実行されます。
while true; do
ssh my-user@my-server Sudo do-release-upgrade -f DistUpgradeViewNonInteractive;
sleep 120;
done
その後、アップグレードプロセスによってデフォルトの構成が配置されるため、バックアップされた構成ファイルを以前の場所に移動する必要があります。
この人は回答を事前に準備する方法を持っています 各プロンプトに対して、しかし欠点は、プロンプトがいくつあるかを知る必要があることです…
Thomas Wardが答えで述べていることを確認し、受け入れられた答えと矛盾する場合、do-release-upgrade -d -f DistUpgradeViewNonInteractive
は機能しません。
実際、最初のプロンプトで、16.04から18.04のテストパーティションが破損し、クローンを再作成する必要がありました。これは、スクリプトがフリーズする場所です。
Setting up mount (2.31.1-0.4ubuntu3) ...
Setting up systemd (237-3ubuntu10) ...
Installing new version of config file /etc/pam.d/systemd-user ...
Installing new version of config file /etc/systemd/journald.conf ...
Configuration file '/etc/systemd/logind.conf'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a Shell to examine the situation
The default action is to keep your current version.
*** logind.conf (Y/I/N/O/D/Z) [default=N] ? y
Y
CRASHED... NOTHING HAPPENS NOW... WILL KILL AND RESTART WITHOUT -f OPTION...
Input Inhibitorにより、スクリプトを強制終了した後、再起動もシャットダウンも機能しません。コールドシャットダウンを行う必要があります(電源ボタンを10秒ほど押し続けます)。
ありがたいことに、これは16.04クローンアップグレードであり、実際の16.04パーティションではありませんでした。
人生をさらに面白くするために、新しい898 MBパーティションがNVMe SSDに追加され、通常のパーティションがシフトされました。
$ lsdrv
NAME FSTYPE LABEL MOUNTPOINT SIZE MODEL
nvme0n1 477G Samsung SSD 960 PRO 512G
├─nvme0n1p5 ntfs 858M
├─nvme0n1p3 16M
├─nvme0n1p1 ntfs 450M
├─nvme0n1p8 ntfs Shared_WSL+Linux /mnt/e 9G
├─nvme0n1p6 ext4 Ubuntu18.04 23.7G
├─nvme0n1p4 ntfs NVMe_Win10 /mnt/c 390.4G
├─nvme0n1p2 vfat /boot/efi 99M
├─nvme0n1p9 swap Linux Swap [SWAP] 7.9G
└─nvme0n1p7 ext4 NVMe_Ubuntu_16.0 / 44.6G
nvme0n1p5
はUbuntu 16.04パーティションがあった場所でしたが、現在はnvme0n1p7
にありますnvme0n1p8
は、18.04テストパーティションが存在していた場所でしたが、現在はnvme0n1p8
にあります注:また、Windows 10をビルド1709からビルド1803にアップグレードしたため、ntfs
形式の新しい898 MB nvme0n1p5
パーティションが作成された可能性があります。
Sudo apt-get -y upgrade
を使用して、ターミナル経由でこれを行うことができます。これは、すべてのプロンプトに「はい」と答えます。ただし、自動的には実行されないため、実行する必要があります。それはshould動作するはずです。知る限りでは、GUIアップデートマネージャを使用してソフトウェアの無人アップグレードを行う方法はありません(これはリリースアップグレードとは異なります!)
別のUbuntuバージョン(別名リリースアップグレード、通常はUbuntuのバージョンに関連するリリースの次のリリース)にアップグレードしようとしている場合は、それをアクティブにする必要があります手動で。 Sudo do-release-upgrade
は機能する可能性があります。ただし、過去のプロンプトをスキップする方法はありません。これが、そのようなプロンプトを表示するときにアップグレードを開始する理由です-プロンプトが表示されます。