web-dev-qa-db-ja.com

LTSPでVirtualBoxイメージを提供することは可能ですか?

約60の教室用PC(Ubuntuファットクライアント)の起動に使用されるLTSPを含むUbuntuイメージがあります。

私たちが直面する最も困難な部分は、ブート可能なイメージを維持し(最新のセキュリティ変更を維持)、大学の敷地外にいる間に教授がイメージをテストすることです。

LTSPサーバーを使用して展開できるVirtualboxを使用して、オーダーメイドのディスクイメージを教師がセットアップできるかどうか疑問に思いました。

1
dodecaplex

あなたの質問は非常に興味深いものです。

Ubuntu 16.04.6 LTSサーバーを使用して、2つの建物で約120のLTSPファットクライアントを実行しています。
すべてのファットクライアントが使用する 推奨MATE DE

したがって、私のサーバーには必要なすべてのLTSPコンポーネントがあります。

/opt/ltsp/images/AMD64.img SquashFSイメージをVirtualBoxハードドライブに変換できることをテストしました。
以下は、VMに変換するために使用した手順です。

1. LTSP SquashFSイメージをマウントし、その内容を新しい空の未加工ハードディスクにコピーします

1.1。ホストシステムでの操作

マウントポイントを作成する

mkdir ~/ltsp_sfs

squashfs LTSPイメージファイルをマウントします。

Sudo mount -o loop /opt/ltsp/images/AMD64.img ~/ltsp_sfs

空の未加工ハードディスクを作成し、squashfsをそこにコピーします。

20 Gbのスペースを割り当てます。

fallocate -l 20G ~/ltsp.raw

ソフトウェアを使用してrawディスクにパーティションを作成します。以下はfdiskメソッドです。

(
echo n # new partition
echo p # it is primary
echo   # and first
echo   # starts at default
echo   # ends at end
echo w # write changes
) | fdisk ~/ltsp.raw

kpartxを使用して~/ltsp.rawファイルのループデバイスを作成します。

Sudo kpartx -a -v ~/ltsp.raw

そして、最初のパーティションをフォーマットします(正確なデバイス名をlosetupで確認します)。

Sudo mkfs.ext4 /dev/mapper/loop1p1 -L LTSP

それをマウントします

mkdir ~/ltsp_ext4
Sudo mount /dev/mapper/loop1p1 ~/ltsp_ext4

Squashfsの内容を新しいext4パーティションにコピーする

Sudo cp -a ~/ltsp_sfs/* ~/ltsp_ext4/

/etc/fstabに正しいパーティションラベルを設定します。

echo "LABEL=LTSP  /  ext4  noatime  0  1" | Sudo tee ~/ltsp_ext4/etc/fstab

1.2。 chrootでの操作

コピーしたファイルシステムへのChroot:

Sudo mount --types proc /proc ~/ltsp_ext4/proc
Sudo mount --bind /sys ~/ltsp_ext4/sys
Sudo mount --bind /dev ~/ltsp_ext4/dev

Sudo chroot ~/ltsp_ext4/

仮想ドライブにGRUBブートローダーをインストールします:

Sudo grub-install /dev/loop1
grub-mkconfig -o /boot/grub/grub.cfg

新しいltspユーザーをSudoグループのメンバーとしてパスワード付きで作成します。

useradd -m -G users,audio,Sudo -s /bin/bash ltsp
passwd ltsp

Chrootを終了する

exit

そのパーティションをアンマウントし、ループバックデバイスを切り離します。

Sudo umount ~/ltsp_ext4/proc
Sudo umount ~/ltsp_ext4/sys
Sudo umount ~/ltsp_ext4/dev

Sudo umount ~/ltsp_ext4/
Sudo kpartx -d -v ltsp.raw

2.仮想マシンで結果の仮想ハードドライブを起動します

2.1。 QEMU-KVMの使用

QEMU-KVMを使用してLTSPイメージを起動します。

kvm -m 1024 -drive file=~/ltsp.raw,format=raw

ltspユーザーとしてシステムにログインします。

LTSP init-scriptと互換性のあるイメージを維持するために、システムサービスには触れないでください。

2.2。 VirtualBox VMの使用

未加工のハードディスクにリンクされた新しいVMDKハードディスクを作成します。

VBoxManage internalcommands createrawvmdk -filename ~/ltsp.vmdk -rawdisk ~/ltsp.raw

それをVirtualBox VM=に接続して起動します。

3.変更されたドライブの内容を使用して新しいLTSPイメージを作成する

次に、新しい仮想hardriveの内容を変更して、サーバーの/opt/ltsp/AMD64にコピーして戻すことができます。次に、Sudo update-ltsp-images AMD64を呼び出して、squashfsファイルシステムに変換し直します。

これを確認するためのリソースがありません。私はあなたがアイデアを得たことを望みます。

1
N0rbert