【大帝】关于android 4.4 r1的目录挂载
androidx86吧
全部回复
仅看楼主
level 3
中華大帝 楼主
一楼度娘。
2014年10月19日 03点10分 1
level 3
中華大帝 楼主
用户资料data和sdcard的挂载代码
mount_data()
{
mountpoint -q data && return
[ -n "$DATA" ] && blk=`basename $DATA` || blk=
if [ -b "/dev/$blk" ]; then
[ ! -e /dev/block/$blk ] && ln /dev/$blk /dev/block
mount /dev/block/$blk data
elif [ -d /mnt/$SRC/data ]; then
remount_rw
mount --bind /mnt/$SRC/data data
elif [ -f /mnt/$SRC/data.img ]; then
remount_rw
mount -o loop /mnt/$SRC/data.img data
else
device_mount_data || mount -t tmpfs tmpfs data
fi
}
#上面这段是data的挂载,不知道$DATA具体代表那个名字,搜索顺序是:
/dev/block/$blk
/mnt/$SRC/data 这个是检测你安装安卓的目录有没有data文件夹
/mnt/$SRC/data.img 检测安装目录有没有data.img镜像
如果上面都没有,就虚拟一个内存镜像,关机后消失
mount_sdcard()
{
mountpoint -q sdcard && return
if [ -n "$SDCARD" -a -e /mnt/$SRC$SDCARD ]; then
if [ ! -e /android$SDCARD ]; then
remount_rw
sddir=`dirname $SDCARD`
mkdir /android$sddir
mount --bind /mnt/$SRC$sddir /android$sddir
fi
elif [ "$SDCARD" = "premount" ]; then
# WARNING: premount the sdcard is deprecated since froyo-x86.
# It is left only for backward compatibility and may be removed
# in the future.
if [ -d /mnt/$SRC/sdcard ]; then
remount_rw
mount --bind /mnt/$SRC/sdcard mnt/sdcard
elif [ -d data/sdcard ]; then
mount --bind data/sdcard mnt/sdcard
else
mount -o mode=2777,uid=1000,gid=1015 -t tmpfs tmpfs mnt/sdcard
fi
fi
}
这是sdcard的挂载代码,默认会挂载到data/media/0这个目录下面。顺序貌似是这样:(还没搞明白)
/mnt/$SRC$SDCARD 这个应该是安装目录的一个代表内存卡的目录,但是不知道$SDCARD代表什么名字
sdcard、sddir、等我都试过了,不管用,都会挂载到data下面。
/mnt/$SRC$sddir
/mnt/$SRC/sdcard
如果上面的目录都没有,就会虚拟一个内存盘,当然也是重启丢失。
2014年10月19日 03点10分 2
$DATA应该是data这个名字,问题是$SDCARD是那个名字。。。。sdcard0?
2014年10月19日 03点10分
level 3
中華大帝 楼主
安卓安装好后,目录结构如下:
android-4.4-r1/data.img 用户数据镜像,挂载到系统的/data目录,如果有data文件夹,则忽略
android-4.4-r1/initrd.img 执行挂载各个目录的镜像
android-4.4-r1/kernel 核心启动程序
android-4.4-r1/ramdisk.img 虚拟系统盘的镜像
android-4.4-r1/system.img 核心程序和资源镜像,挂载到系统/system目录
android-4.4-r1/data 我建立的文件夹,会忽略上面的data.img镜像,这时系统显示的内部空间大小是你实际安装安卓的那个分区的空间大小。貌似安装安卓的硬盘分区是ntfs会有点毛病,ntfs不能模拟extfs的权限属性
android-4.4-r1/sdcard 我建的文件夹,但是不管用
android-4.4-r1/sddir 不管用
2014年10月19日 03点10分 3
level 3
中華大帝 楼主
我想弄明白怎么把实际的物理硬盘挂载到android系统里面,一直搞不明白。建立data目录倒是提供了android系统和其他系统方便数据交互的方法,但重新启动后google的一些服务总是出错,可能分区是ntfs的原因。
2014年10月19日 03点10分 4
level 3
中華大帝 楼主
挂载硬盘其他分区,网上我看到的一些资料是,把dev/sda1、dev/sda2这样的设备挂载到某个目录,但是我这里没有这些设备,dev/block/sda1这样的设备都有,但是我挂载不上去。fdisk -l什么也不返回。
2014年10月19日 03点10分 5
level 12
汗~~~在启动脚本里写上挂载各个盘的就好了,我的一直都让它启动时自动挂载的。
2014年10月21日 17点10分 6
能否把脚本给在下一看?另外,我修改了一些东西,用cpio打包的initrd.img貌似不能用,谢谢!
2014年10月22日 15点10分
回复 中华大帝丶 :你这是从原理上去搞,我的办法是快速解决问题。参考吧里的这个帖子:https://tieba.baidu.com/p/2094586835,直接改/system/etc/init.rc吧。
2014年10月22日 15点10分
回复 felonwan :我做的initrc.img不知道那出错,启动不了,不识别。
2014年10月26日 12点10分
1