「Linuxコマンド - chroot」の版間の差分

ナビゲーションに移動 検索に移動
176行目: 176行目:
  sudo umount -dfl /mnt/proc    && \
  sudo umount -dfl /mnt/proc    && \
  sudo umount -dfl /mnt
  sudo umount -dfl /mnt
<br><br>


== 例 : Manjaro ARM (PinePhone) ==
x86またはx64のPCを使用している場合、ARMバイナリのQEMU変換を設定する。<br>
もし、ARM PCを使用している場合は、この操作は行わない。<br>
# パッケージ管理システムからインストールしている場合
sudo /usr/sbin/qemu-binfmt-conf.sh
# ソースコードからインストールしている場合
sudo /<QEMU-User-Staticのインストールディレクトリ>/sbin/qemu-binfmt-conf.sh
<br>
イメージファイルのルートファイルシステムにおいて、オフセットを確認する。<br>
<u>この時、img拡張子の開始位置と1セクタのサイズを乗算して、ルートファイルシステムのオフセットを求める。</u><br>
sudo fdisk -l <Manjaro ARMのイメージファイル名>.img
<br>
Manjaro ARMのイメージファイルをマウントする。<br>
以下の例では、/mntディレクトリにマウントしている。<br>
sudo mount -t ext4 -o loop,offset=<ルートファイルシステムのオフセット  例: img拡張子の開始位置と1セクタのサイズを乗算した値> <Manjaro ARMのイメージファイル名>.img /mnt
sudo mount --bind /sys  /mnt/sys  && sudo mount --make-rslave /mnt/sys  && \
sudo mount --bind /dev  /mnt/dev  && sudo mount --make-rslave /mnt/dev  && \
sudo mount --bind /proc /mnt/proc && sudo mount --make-rslave /mnt/proc && \
sudo mount --bind /dev/pts /mnt/dev/pts
# または
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命令セットをエミュレートするために必要なファイルを、Manjaro ARM (PinePhone)のマウント先ディレクトリにコピーする。<br>
# パッケージ管理システムからインストールしている場合
sudo cp /usr/bin/qemu-aarch64-binfmt /usr/bin/qemu-aarch64 /mnt/usr/bin/
# ソースコードからインストールしている場合
sudo cp /<QEMU-User-Staticのインストールディレクトリ>/bin/qemu-aarch64-binfmt /<QEMU-User-Staticのインストールディレクトリ>/bin/qemu-aarch64 /mnt/usr/bin/
<br>
Manjaro ARM (PinePhone)の環境にchrootする。<br>
sudo chroot /mnt qemu-aarch64 /bin/bash
<br>
以下の例のようなコマンドを実行して、正常に動作するかどうかを確認する。<br>
(root権限で実行されるため、<code>sudo</code>は不要)<br>
pcman -Syyu
pacman -S --needed nano
<br>
<u>※注意</u><br>
<u>以下に示すようなエラーが発生する場合がある。</u><br>
error: <インストールするパッケージ名>: signature from "Arch Linux ARM Build System <builder@archlinuxarm.org>" is unknown trust
<br>
<u>この時、/etc/pacman.confファイルを以下に示すように編集する。</u><br>
sudo vi /etc/pacman.conf
<br>
<syntaxhighlight lang="ini">
# 42行目あたり
#SigLevel    = Required DatabaseOptional  # コメントアウトする
SigLevel    = Optional TrustAll          # 追記する
</syntaxhighlight>
<br>
Manjaro ARM (PinePhone)の環境を終了する場合は、ターミナルから<code>exit</code>コマンドを実行した後、<br>
Manjaro ARM (PinePhone)のイメージファイルをアンマウントする。<br>
sudo umount -dfl /mnt/sys    && \
sudo umount -dfl /mnt/dev/pts && \
sudo umount -dfl /mnt/dev    && \
sudo umount -dfl /mnt/proc    && \
sudo umount -dfl /mnt
<br><br>
<br><br>


案内メニュー