MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Linuxコマンド - chrootのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Linuxコマンド - chroot
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == <br><br> == QEMUのインストール == QEMU-User-Staticは、クロスアーキテクチャの開発者にとって重要なツールである。<br> これにより、ユーザはchroot環境を作成して、クロスコンパイルされたプログラムを実行することができる。<br> <br> 例えば、ユーザはシステムレベルのエミュレーションのオーバーヘッド無しに、AArch64の実行ファイルを実行することができる。<br> <br> ==== ソースコードからインストール ==== QEMUのビルドに必要なライブラリをインストールする。<br> sudo zypper install flex bison automake gcc gcc-c++ make glibc glibc-utils glib2-devel gtk3-devel ncurses-devel libxml2-devel \ libgnutls-devel gmp-devel libnettle-devel libseccomp-devel liburing-devel libgbm-devel glusterfs-devel \ libjpeg8-devel libpng16-devel libpulse-devel alsa-devel libjack-devel spice-protocol-devel libspice-server-devel \ libxkbcommon-devel libcap-devel libcap-ng-devel libpcap-devel libcurl-devel libudev-devel virglrenderer-devel xfsprogs-devel \ libiscsi-devel libzstd-devel libnfs-devel libvdeplug-devel brlapi-devel libSDL2-devel libSDL2_image-devel librados-devel \ lzfse-devel libmpath0 libcacard-devel lzo-devel snappy-devel libgcrypt-devel libu2f-server-devel libu2f-host-devel \ usbredir-devel libusb-1_0-devel libpmem-devel libkeyutils1 keyutils-devel libselinux-devel fuse-devel fuse3-devel libbpf-devel \ libbd_swap-devel libcapstone-devel libslirp-devel libfdt-devel sphinx libsphinxclient-devel numad libnuma1 numactl libnuma-devel \ librbd-devel rdma-core-devel libnet-devel libfvde-devel libdmmp-devel multipath-tools-devel libssh-devel libssh2-devel <br> QEMUのソースコードをダウンロードする。<br> * パッケージ管理システムからダウンロードする場合 *: <code>sudo zypper install </code> *: <br> * QEMUの公式Webサイトから、ソースコードをダウンロードする場合 *: [https://www.qemu.org/download/ QEMUの公式Webサイト]にアクセスして、ソースコードをダウンロードする。 *: ダウンロードしたファイルを解凍する。 *: <code>tar xf qemu-<バージョン>.tar.xz</code> *: <code>cd qemu-<バージョン></code> *: <br> * Gitからソースコードをダウンロードする場合 *: <code>git clone git://git.qemu.org/qemu.git</code> *: <code>cd qemu</code> *: <code>git submodule update --init --recursive</code> <br> QEMUをQEMU-User-Staticとして、ビルドおよびインストールする。<br> mkdir build && cd build <br> <code>--disable-system</code>オプションを指定する時、softmmuターゲットが無効になる。<br> ただし、softmmuターゲットがいくつかの共有ライブラリに依存していることは知られている。<br> <code>--static</code>オプションを指定した場合、これらのsoftmmuターゲットはリンクエラーを引き起こす。<br> ../configure --prefix=<QEMU-User-Staticのインストールディレクトリ> \ --static \ --disable-bsd-user --disable-guest-agent --disable-strip --disable-spice \ --disable-kvm --disable-xen \ --enable-linux-user \ --disable-tools \ --disable-system (AArch64のみをインストールする場合は、--target-list=aarch64-linux-userオプションを指定する) make -j $(nproc) make install <br> ファイル名がコンフリクト(衝突)を起こさないように、ファイル名を変更する。<br> 以下の例では、ファイル名に-staticサフィックスを追加している。<br> cd /<QEMU-User-Staticのインストールディレクトリ>/bin bash -c 'for i in *; do cp ${i} ${i}-static; done' <br><br> == 例 : openSUSE Tumbleweed (PinePhone) == AArch64命令セットを動作させるために必要なライブラリをインストールする。<br> sudo zypper install qemu-arm qemu-linux-user qemu-uefi-aarch64 <br> x86またはx64のPCを使用している場合、ARMバイナリのQEMU変換を設定する。<br> もし、ARM PCを使用している場合は、この操作は行わない。<br> sudo /usr/sbin/qemu-binfmt-conf.sh <br> イメージファイルのルートファイルシステムにおいて、オフセットを確認する。<br> <u>この時、raw2拡張子の開始位置と1セクタのサイズを乗算して、ルートファイルシステムのオフセットを求める。</u><br> sudo fdisk -l <openSUSE Tumbleweedのイメージファイル名>.raw <br> openSUSE Tumbleweedのイメージファイルをマウントする。<br> 以下の例では、/mntディレクトリにマウントしている。<br> sudo mount -t btrfs -o loop,offset=<ルートファイルシステムのオフセット 例: raw2拡張子の開始位置と1セクタのサイズを乗算した値> <openSUSE Tumbleweedのイメージファイル名>.raw /mnt sudo mount --rbind /sys /mnt/sys && sudo mount --make-rslave /mnt/sys && \ sudo mount --rbind /dev /mnt/dev && sudo mount --make-rslave /mnt/dev && \ sudo mount --rbind /proc /mnt/proc && sudo mount --make-rslave /mnt/proc && \ sudo mount --rbind /dev/pts /mnt/dev/pts sudo cp /run/netconfig/resolv.conf /mnt/etc/ <br> AArch64命令セットをエミュレートするために必要なファイルを、openSUSE Tumbleweed (PinePhone)のマウント先ディレクトリにコピーする。<br> sudo cp /usr/bin/qemu-aarch64-binfmt /usr/bin/qemu-aarch64 /mnt/usr/bin/ <br> openSUSE Tumbleweed (PinePhone)の環境にchrootする。<br> sudo chroot /mnt qemu-aarch64 /bin/bash <br> openSUSE Tumbleweed (PinePhone)の環境を終了する場合は、ターミナルから<code>exit</code>コマンドを実行した後、<br> openSUSE Tumbleweed (PinePhone)のイメージファイルをアンマウントする。<br> sudo umount -fl /mnt <br><br> == 例 : Raspbian OS (AArch64) == AArch64命令セットを動作させるために必要なライブラリをインストールする。<br> sudo zypper install qemu-arm qemu-linux-user qemu-uefi-aarch64 <br> 以下のコマンドを実行する。<br> sudo qemu-binfmt-conf.sh <br> イメージファイルのルートファイルシステムにおいて、オフセットを確認する。<br> <u>この時、img3拡張子の開始位置と1セクタのサイズを乗算して、ルートファイルシステムのオフセットを求める。</u><br> sudo fdisk -l <Raspbian OS (AArch64)のイメージファイル名>.img <br> Raspbian OS (AArch64)のイメージファイルをマウントする。<br> 以下の例では、/mntディレクトリにマウントしている。<br> sudo mount -t ext4 -o loop,offset=<ルートファイルシステムのオフセット 例: img3拡張子の開始位置と1セクタのサイズを乗算した値> <Raspbian OS (AArch64)のイメージファイル名>.raw /mnt <br> AArch64命令セットを動作させるために必要なライブラリを、Raspbian OS (AArch64)のマウント先ディレクトリにコピーする。<br> sudo cp /usr/bin/qemu-aarch64-binfmt /usr/bin/qemu-aarch64 /mnt/bin/ <br> chrootコマンドを実行して、Raspbian OS (AArch64)を起動する。<br> sudo chroot /mnt qemu-aarch64 /bin/bash <br> 終了する場合は、Raspbian OS (AArch64)のイメージファイルをアンマウントする。<br> sudo umount -fl /mnt <br><br> __FORCETOC__ [[カテゴリ:CentOS]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]
Linuxコマンド - chroot
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse