マウントするyaffs2ファイルシステム(Androidパーティションイメージ)を使用する.imgファイルがあります。 mountコマンドで実行できないようです。これどうやってするの? Ubuntu 12.04を使用しています。
また、それを抽出したくありません(unyaffs
を使用してそれを行う方法を知っています)。マウントしたいです。
Ubuntuは現在、YAFFS2をサポートしていません。ファイルシステムのマウントサポートを提供するYAFFS2カーネルモジュールをパッケージ化する機能要求があります: [needs-packaging] yaffs2 。
したがって、現在、マウントのサポートが必要な場合は、自分でコンパイルする必要があります。 YAFFS Webサイトには、LinuxカーネルをYAFFSサポート付きでコンパイルするための指示があります(Precise 32ビットを使用):
Ubuntu wikiには、 独自のカーネルのコンパイル に関する一般情報もあります。
または、 yaffs2utils
を使用してイメージを抽出および再構築してください。
バグが原因 、--yaffs-ecclayout
オプションを指定する必要があります。指定しないと、暗黙的に失敗します。抽出するには、次のようなものを試してください
git clone https://code.google.com/p/yaffs2utils/
cd yaffs2utils && make && cd ..
./yaffs2utils/unyaffs2 --yaffs-ecclayout system.img tempdir
理論的には、mkyaffs2
を使用してイメージを再構築することもできますが、動作させることができませんでした(結果は起動できませんでした)。
GUIを使用してYAFFS2イメージを編集できるプログラム Yaffey を見つけました。
ホームページにはWindows専用であると書かれていますが、 些細な変更を加えて Ubuntu Preciseでコンパイルします。そうするために:
Sudo apt-get install qt-sdk
hg clone https://code.google.com/p/yaffey/
ファイルyaffey/yaffs2/yaffs_guts.h
で、次の行を変更します
typedef unsigned loff_t;
に
#include <stdlib.h>
cd yaffey && qmake && make
./yaffey
を実行します。試したところ、結果のイメージはAndroidエミュレーターで正常に起動しました。
Androidは元々
YAFFS2
をファイルシステムとして使用していました。 Android 2.3の後、ファイルシステムはext4
になりました。
from https://stackoverflow.com/questions/23946910/
file system.img
system.img: VMS Alpha Exectutable
//これはyaffs2画像です
file system.img
system.img: data
//これはおそらくext4スパース画像です
blkid -pO 40 system.img
system.img: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" VERSION="1.0" TYPE="ext4" USAGE="filesystem"
//はい、ext4スパース画像です
// 40 = sizeof(struct sparse_header)+ sizeof(struct chunk_header)
ref: simg2imgソースコード
これはスパースファイルシステムです。まず、simg2imgを使用してスパースを解除する必要があると思います。 Nexus7イメージで使用したときのために here に投稿したext4_utilsの一部としてダウンロードできます。イメージを解凍し、次のようにマウントします。
開梱:
./simg2img rootfs.img rootfs.ext4
マウント:
Sudo mount -o loop rootfs.ext4 tmpmnt/
解凍してハッキングしたら、make_ext4fsを使用して再構築します。おそらく Nexus7の画像のハッキングについて私が作成したブログエントリを読んでください この記事のほとんどと、それが参照するスクリプトが役立つためです。
これをUbuntu 13でアップデートすると思いました。他の人の助けになるように、いくつかの変更を加えてコンパイルする必要がありました。
Yaffey.pro以下を編集します
QT += core gui
追加
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
MainWindow.cppを編集して検索/置換:
setResizeMode
with setSectionResizeMode
YaffTreeView.cpp以下を編集します
#include <QDebug>
追加
#include <QMimeData>
これでコンパイルできるはずです。
NospamとMechanical Snailの手順を実行した後、main.cppでこの変更を行う必要がありました
変化する:
#include <QtGui/QApplication>
に:
#include <QtWidgets/QApplication>
その後、最終的にコンパイルしました
ext4スパースイメージ(Android system.img
)を扱うユーザー向け
Androidは元々
YAFFS2
をファイルシステムとして使用していました。 Android 2.3の後、ファイルシステムはext4
になりました。
from https://stackoverflow.com/questions/23946910/
file system.img
system.img: VMS Alpha Exectutable
//これはyaffs2画像です
file system.img
system.img: data
//これはおそらくext4スパース画像です
blkid -pO 40 system.img
system.img: UUID="57f8f4bc-abf4-655f-bf67-946fc0f9f25b" VERSION="1.0" TYPE="ext4" USAGE="filesystem"
//はい、ext4スパース画像です
// 40 = sizeof(struct sparse_header)+ sizeof(struct chunk_header)
ref: simg2imgソースコード
mfischの答えとして。
スパース画像を生画像に変換する:
./simg2img system.img system_raw.img
マウント:
Sudo mount -t ext4 system_raw.img tmpmnt/