ルートボリュームをLVM LVにして、10.10 Desktop LiveCDからインストールしました。
どうやらこれはサポートされていません。 GUIインストーラーアプリを起動する前に、次の手順を実行して管理しました。
lvm2
パッケージを実行中のシステムにインストールする/var
;の2番目のLVも作成しました。これは関係ないと思います。これらの手順を実行した後、GUIインストーラーは2つのLVをインストールターゲットとして提供しました。 LVMパーティションとは別のプライマリパーティションに/boot
を置くことも喜んで受け入れました。
インストールは順調に進んでいるようで、ルートボリュームとvarボリュームの両方に許容可能なディレクトリ構造が含まれていることを確認しました。
ただし、起動は失敗します。何が起こったのかを正しく理解できたら、initrdファイルシステムで実行されているbusyboxにドロップされました。
私はまだgrub2のドキュメント全体を調べていませんが、新しいシステムを起動しようとするエントリは正しいようです。
menuentry 'Ubuntu, with Linux 2.6.35-22-generic' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
insmod part_msdos
insmod ext2
set root='(hd0,msdos3)'
search --no-floppy --fs-uuid --set $UUID_OF_BOOT_FILESYSTEM
linux /vmlinuz-2.6.35-22-generic root=/dev/mapper/$LVM_VOLUME_GROUP-root ro quiet splash
initrd /initrd.img-2.6.35-22-generic
}
注 $ VARSは、実際のgrub.cfg
で対応する値に置き換えられます。
Livecdを再起動し、initrdイメージを一時ディレクトリに解凍しました。 initrdイメージにはLVM機能が欠けているようです。たとえば、/usr/share/initramfs-tools/hooks/lvm2
(livecdでブートされたシステムにlvm2
でインストールされ、インストールされたシステムには存在しない)を正しく読んでいる場合、lvm
実行可能ファイルは/sbin
;そうではありません。
この状況を改善する最良の方法は何ですか? LVMをサポートしていると思われる代替インストールCDを使用する方が簡単だと思いますが、ダウンロードしてから再インストールするのを待ちたくありません。
あなたは頭の上の問題を直撃しました:initramfsはLVMをサポートしていません。修正方法は次のとおりです。
lvm2
を再度インストールしますボリュームグループを起動します(-a yが機能しない場合は、-a yesを試してください)
vgchange -a y
別のツリーの下にマウントされたルートLV、/ boot、および/ devを取得します
mkdir /newroot
mount /dev/yourVG/rootLV /newroot
mount /dev/yourbootpartition /newroot/boot
mount -o bind /dev /newroot/dev
必要なパッケージを/ newrootツリーにコピーします
cp /var/cache/apt/archives/*deb /newroot/tmp/
新しいツリーにchrootし、パッケージをインストールします
chroot /newroot
cd /tmp
dpkg -i *.deb
この時点で、正常に戻るはずです(lvm2のインストール時にinitramfsが再生成されるため)。そうでない場合は、chroot内でupdate-initramfs -u
を実行して遊ぶことができます。
システムをハードディスクにインストールした後、起動する前にそのシステムにlvm2をインストールする必要があります。 livecdにlvm2をインストールした場合、パッケージは/ var/cache/apt/archivesにあります。そのディレクトリに移動し、ハードディスクをマウントし、dpkg --root =/mnt * .debを使用してパッケージをハードディスクにインストールします。あなたの場合、ルートfsを/ mntにマウントし、var fsを/ mnt/varにマウントする必要があります。
また、別の/ bootパーティションは必要なく、別の/ varパーティションは疑わしいです。
最終的には this walkthrough の最後のセクションの助けを借りて、Kees Cookがうまくレイアウトしていることを主にやった。しかしながら:
/dev
をバインドマウントしませんでした。これにより、後でいくつかのエラーメッセージが発生したようです。下記参照。/var
に加えて、/boot
ボリュームを新しいルートにマウントしました。デブを新しいルートの/tmp
にコピーしませんでした。代わりに、chroot
ingの後に# apt-get install aptitude; aptitude install lvm2
を実行しました。
aptitude
、およびおそらくapt-get
は、どのパッケージが明示的にインストールされ、どのパッケージが依存関係として自動的にインストールされたかを追跡します。apt-cacher-ng
を実行)経由でパッケージを取得しているので、それらが再びダウンロードされるのを待つ必要さえありませんでした。 /etc/apt/apt.conf.d/02proxy
を実行する前に、Acquire::http::Proxy "http://local-apt-proxy-server:3142";
にapt-get
を含むファイルを作成する必要がありました。パッケージをインストールする前に、インストールを行う前にLiveCDから実行しながら同じことをしました。エラーメッセージまたは警告が数回表示される
Can not write log, openpty() failed (/dev/pts not mounted?)
** mount -o bind/dev/pts/mnt/YouNameIt/dev/pts
This did not prevent the appropriate lines from being added to `/var/log/dpkg.log`.
I suspect that this issue could have been averted by bind-mounting `/dev`, but I don't really understand what it means, i.e. I don't know what log it's referring to, or why it would need to access a pty in order to write to a log.