EmuELEC系统的结构

分区结构

在img写入后, 会产生两个分区
EMUELEC: 用于启动的文件, 例如dtb文件等, 以及system.img & system.img.md5, EmuELEC的系统文件都在这个img里面
STORAGE:

运行中目录结构

/dev/mmcblk1p1 511.7M 373.6M 138.2M 73% /flash
/dev/loop0 357.5M 357.5M 0 100% /
/dev/mmcblk1p2 28.6G 3.5G 25.1G 12% /storage

启动后, EMUELEC分区被挂载为 /flash, STORAGE分区被挂载为 /storage, system.img 通过 /dev/loop0 被挂载为系统根目录 / 

所以, 用户能修改的仅仅是 /flash 和 /storage 目录下的内容
root用户的home目录被定位到 /storage, 如果需要添加登录后自动执行的命令(例如添加alias), 可以直接在 /storage 目录下新建 .profile 文件来实现

系统启动的服务是通过systemd管理的, 启动脚本位于 /usr/lib/systemd/system/ 下, 因为是过loop设备挂载的, 所以这里面的文件都不可修改. 默认的启动target为

EmuELEC:/usr/lib/systemd/system # systemctl get-default
emuelec.target
EmuELEC:/usr/lib/systemd/system # ll def*.*
lrwxrwxrwx    1 root     root            14 Nov 19 00:42 default.target -> emuelec.target

服务依赖关系为

EmuELEC:/usr/lib/systemd/system # systemctl list-dependencies emuelec.target
emuelec.target
● ├─emuelec-autostart.service
● ├─emustation.service
● ├─retroarch.service
● ├─tmp-assets.mount
● ├─tmp-cores.mount
● ├─tmp-database.mount
● ├─tmp-joypads.mount
● ├─tmp-overlays.mount
● ├─tmp-shaders.mount
● ├─graphical.target
● │ ├─unbind-console.service
● │ └─multi-user.target
● │   ├─avahi-daemon.service
● │   ├─connman.service
● │   ├─dbus.service
● │   ├─entware.service
● │   ├─iptables.service
● │   ├─nmbd.service
● │   ├─pulseaudio.service
● │   ├─rpcbind.service
● │   ├─sixaxis@multi-user.service
● │   ├─smbd.service
● │   ├─sshd.service
● │   ├─systemd-ask-password-wall.path
● │   ├─systemd-logind.service
● │   └─basic.target
● │     ├─add-entropy.service
● │     ├─amlogic-dvb.service
● │     ├─fstrim.service
● │     ├─hwdb.service
● │     ├─kvimfan.service
● │     ├─openvfd.service
● │     ├─show-version.service
● │     ├─swap.service
● │     ├─tmp.mount
● │     ├─var.mount
● │     ├─wetekdvb.service
● │     ├─paths.target
● │     ├─slices.target
● │     │ ├─-.slice
● │     │ └─system.slice
● │     ├─sockets.target
● │     │ ├─dbus.socket
● │     │ ├─systemd-initctl.socket
● │     │ ├─systemd-journald-audit.socket
● │     │ ├─systemd-journald-dev-log.socket
● │     │ ├─systemd-journald.socket
● │     │ ├─systemd-udevd-control.socket
● │     │ └─systemd-udevd-kernel.socket
● │     ├─sysinit.target
● │     │ ├─debug-shell.service
● │     │ ├─debugconfig.service
● │     │ ├─dev-hugepages.mount
● │     │ ├─dev-mqueue.mount
● │     │ ├─kmod-static-nodes.service
● │     │ ├─machine-id.service
● │     │ ├─openssl-config.service
● │     │ ├─sys-fs-fuse-connections.mount
● │     │ ├─sys-kernel-config.mount
● │     │ ├─sys-kernel-debug.mount
● │     │ ├─systemd-ask-password-console.path
● │     │ ├─systemd-hwdb-update.service
● │     │ ├─systemd-journal-catalog-update.service
● │     │ ├─systemd-journal-flush.service
● │     │ ├─systemd-journald.service
● │     │ ├─systemd-modules-load.service
● │     │ ├─systemd-sysctl.service
● │     │ ├─systemd-tmpfiles-setup-dev.service
● │     │ ├─systemd-tmpfiles-setup.service
● │     │ ├─systemd-udev-trigger.service
● │     │ ├─systemd-udevd.service
● │     │ ├─tz-data.service
● │     │ ├─usercache.service
● │     │ ├─userconfig.service
● │     │ ├─local-fs.target
● │     │ │ ├─kernel-overlays.service
● │     │ │ ├─libmali.service
● │     │ │ ├─tmp.mount
● │     │ │ └─var.mount
● │     │ └─swap.target
● │     └─timers.target
● │       └─systemd-tmpfiles-clean.timer
● └─multi-user.target
●   ├─avahi-daemon.service
●   ├─connman.service
●   ├─dbus.service
●   ├─entware.service
●   ├─iptables.service
●   ├─nmbd.service
●   ├─pulseaudio.service
●   ├─rpcbind.service
●   ├─sixaxis@multi-user.service
●   ├─smbd.service
●   ├─sshd.service
●   ├─systemd-ask-password-wall.path
●   ├─systemd-logind.service
●   └─basic.target

  

上一篇:linux基础命令


下一篇:LintCode python入门题