チュートリアルを使いやすいスクリプト http://qt-project.org/wiki/RaspberryPi_Beginners_guide に適合させようとしています。
私は、Sudo/rootの必要性をできるだけ減らすようにしています(できれば、最後のdd
ステップについてのみ)。
私の質問は:
Sudo/root権限なしでext4ファイルシステムをマウントできますか?
FSのユーザー/グループが何らかの方法で無視されるようにマウントできますか(Sudoなしでmake installを実行できます)?
ファイルシステムは現在、ファイルのオフセットからループバックでマウントされています(つまり、-o loop,offset=62914560
)。
このファイルは、Raspberry Piの起動に使用されるSDカードにコピーされるイメージです。
libguestfs が必要です。 guestfish または guestmount を介して使用するか、ライブラリを Cインターフェイス または-などの多くの言語バインディングのいずれかを介して直接使用できます。 Python 。
これについては、次のことが頭に浮かびます。
通常の権限を持つユーザーとしてマウントするデバイスの/etc/fstab
に行を追加できます。
行の例は次のようになります
/dev/mydevice /mnt/directory auto rw,user 0 0
この行を使用すると、通常のユーザーはmydevice
を/mnt/directory
にマウントでき、さらにデバイスからの読み取りとデバイスへの書き込みができます。呼び出すだけです
mount mydevice
または
mount /mnt/directory
の構文の優れた説明については、/etc/fstab
をご覧ください。
raspberry
はUSBデバイスであるため、特定のudevルール(自動マウントなど)を追加することにより、udev
でよりエレガントにこれを実現できます。この場合、さらに説明が必要な場合は、ここで説明します。
マウントするには、スーパーユーザー権限が必要です。しかし、それらはSudo、mount、fusermountなどのsetuidヘルパーコマンドによって提供される可能性があります。/etc/fstabで、管理者は特定のFSをマウントするために一部のユーザーを許可できます。一部のユーザーは、Fuseを介してファイルシステムをマウントすることを許可できます(たとえば、FSがextの場合、fuseextを使用できる場合があります。
または、ファイルシステム内に書き込むことができるアプリケーションを使用することにより、マウントせずに実行できます。たとえば、debugfsはext fsイメージに書き込むことができ(dirs、ファイルの作成、所有権の変更など)、debugfsは簡単にスクリプト化できます。qemuを使用してLinuxカーネルを実行し、関連するコマンドを使用してそのFSに書き込むこともできます。
システムがudiskを使用している(そしてpolkitが非rootユーザーのudiskのマウントを許可している)場合は、次のコマンドでファイルをマウントできます。
udisksctl loop-setup -f file.img -o <OFFSET>
<OFFSET>
は、ループバックマウントを開始するバイト数を表す整数値です。 -r
読み取り専用でマウントしたい場合に切り替えます。