上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
開発/imgのマウント
のソース
資料室
開発
/
imgのマウント
のソース
[
差分
|
バックアップ
|
リロード
]
[ ]
差分
を表示
開発/imgのマウント
へ行く。
* ディスクイメージファイルをマウントする [#o96ce30a] PCで作業している際,たまにCD/DVDなどのISOイメージやHDDイメージファイルの中からファイルを抜き出したくなることがある。 Linuxではループバックデバイス機能を使うと,これらのイメージファイルをディスク((正確にはブロックデバイス))としてマウントすることが出来る。~ これによりイメージファイルの中身を編集したりすることも出来るようになる。 ** 実際の方法 [#p0618aad] mountコマンドで''-o loop''オプション付きでを実行すれば,イメージファイルをマウントすることが出来る。 試してみたいのだが,マウントしてみるイメージファイルが必要。~ DDコマンドを使って試しにイメージファイルを作成して,これをマウントしてみることにした。 - イメージファイルの作成~ 100MB,ext4フォーマットのイメージファイルを作成する。 $ dd if=/dev/zero of=./100m.img bs=1M count=100 $ mkfs.ext4 100m.img これで,約100MBのイメージファイルが出来ました。中身は空っぽ。 - イメージファイルのマウント~ 上記ので作成したイメージファイルをマウントする。 # mount -t ext4 -o loop 100m.img /mnt/任意のディレクトリ このようにすると,/mnt/任意のディレクトリに,イメージファイルがマウントされる。~ 読み込みはもちろん,書き込みも可能。 ** CD/DVDイメージのマウント(ISOイメージ) [#f6de7a7a] CD/DVDのISOイメージを同様にマウントしてみる。~ 例として,Ubuntu 16.04 LTSのインストールディスクイメージ ubuntu-ja-16.04-desktop-amd64.iso をマウントしてみる。 # mount -t iso9660 -o loop ubuntu-ja-16.04-desktop-amd64.iso /mnt/任意のディレクトリ 書き込み禁止だという警告が出るけど,マウントはされる。(読み込み専用) $ ls /mnt/任意のディレクトリ EFI README.diskdefines boot casper dists isolinux md5sum.txt pool preseed ** SDカードのイメージのマウント [#c457e8a5] Raspberry PiにインストールするOSのイメージファイルをマウントしてみる。~ Raspbian Stretch Lite を使ってみる。 # mount -t ext4 -o loop 2018-04-18-raspbian-stretch-lite.img /mnt/任意のディレクトリ しかし,以下のようなメッセージが表示されてうまくいかない。 mount: 何らかのエラーにより、マウントが失敗しました。 ファイルシステムタイプ, オプション, /dev/loop0 上のスーパー ブロック, 必要なコードページ指定/ヘルパープログラム など、何らかの設定が間違っているものと思われます。 syslog 内に記録された情報が手助けになるものと思います - dmesg | tail などを実行してお読みください これは,このイメージファイルにパーティションが複数あるから。~ 複数のパーティションが含まれるディスクイメージの場合,パーティションを指定してマウントする必要がある。~ これをどうするかと言うと,offsetオプションを使ってマウントすることが出来る。~ offsetに指定する値を調べるために,fdisk -l -u として,ディスクイメージの情報を見てみる。 $ fdisk -l -u 2018-04-18-raspbian-stretch-lite.img ディスク 2018-04-18-raspbian-stretch-lite.img: 1.8 GiB, 1862270976 バイト, 3637248 セクタ 単位: セクタ (1 * 512 = 512 バイト) セクタサイズ (論理 / 物理): 512 バイト / 512 バイト I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト ディスクラベルのタイプ: dos ディスク識別子: 0xc7cb7e34 デバイス 起動 開始位置 最後から セクタ サイズ Id タイプ 2018-04-18-raspbian-stretch-lite.img1 8192 96453 88262 43.1M c W95 FAT32 (LBA) 2018-04-18-raspbian-stretch-lite.img2 98304 3637247 3538944 1.7G 83 Linux offsetオプションに指定する値は,セクタサイズ×マウントしたいパーティションの始点になる。~ 例えば,上記の二つ目のパーティションをマウントする場合,512*98304=50331648 が指定値になる。 # mount -t ext4 -o loop,offset=50331648 2018-04-18-raspbian-stretch-lite.img /mnt/任意のディレクトリ 今度は,マウント出来ました。 $ ls /mnt/任意のディレクトリ bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var ちなみに,以下のようにoffset指定することも可能。 # mount -t ext4 -o loop,offset=$((98304*512)) 2018-04-18-raspbian-stretch-lite.img /mnt/任意のディレクトリ
開発/imgのマウント のバックアップソース(No. All)
現: 2023-05-02 (火) 12:09:01
yuji
Counter: 3330, today: 9, yesterday: 8
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
» 関連ページ
» Wikiソース
» 編集履歴
» バックアップ一覧
» 添付ファイル一覧
フォーラム
お問い合わせ