You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu Live Session相关技术细节问询

Ubuntu Live Session相关技术细节问询

嘿,这个问题问到点子上了,我来给你拆解清楚Ubuntu Live Session的这些技术细节~

一、除了非持久化,Live Session还有这些特殊之处

  • 只读根文件系统:Live Session的核心系统文件是从ISO镜像挂载的只读分区,所有对系统文件的修改(比如安装软件、修改配置)都只会临时存在于内存的tmpfs中,重启后完全消失;而普通用户会话的根分区是可读写的硬盘分区,修改会永久保存。
  • 无密码特权用户:默认的ubuntu用户拥有无密码sudo权限,不需要输入密码就能执行任何管理员操作;普通用户必须设置密码,且通常需要加入sudo组才能获得管理员权限。
  • 自动登录与宽松权限:Live Session启动后会自动登录到ubuntu用户,无需输入密码;同时系统预设了很多便捷性配置(比如自动挂载外部存储、开放的网络权限),比普通会话的默认权限更宽松。
  • 预装Live专属工具:默认带有启动盘创建器(Startup Disk Creator)、系统安装器(Ubiquity)等工具,这些是普通Ubuntu系统默认不会预装的。
  • 临时家目录:用户家目录/home/ubuntu挂载在内存tmpfs中,所有个人文件、桌面配置重启后都会丢失;普通用户家目录则存储在硬盘的固定分区中。

二、Live Session的创建流程

Ubuntu的Live环境是基于casper工具集实现的,具体流程大概是这样:

  1. 从启动盘启动时,BIOS/UEFI加载ISO镜像中的引导程序,随后加载内核和initramfs(初始化内存文件系统)。
  2. initramfs中的casper脚本会将ISO镜像挂载为只读的根文件系统,同时创建多个tmpfs分区,用来挂载/tmp/var/home等需要可写操作的目录,实现“只读系统+临时可写层”的结构。
  3. 接着casper会自动创建ubuntu用户:不需要手动设置密码,直接配置好无密码sudo权限,同时加载预定义的用户配置(比如桌面布局、快捷方式)。
  4. 最后启动桌面环境,自动登录到ubuntu用户,进入Live Session。

三、和从/etc/skel复制的普通用户相比的差异

普通用户创建时,系统会将/etc/skel目录下的模板文件复制到新用户的家目录,而Live Session的ubuntu用户有这些不同:

  • 用户配置来源不同:Live用户的家目录不是从/etc/skel复制,而是来自Live镜像中预打包的用户配置模板(通常在casper的 squashfs 镜像里),包含大量Live专属的快捷方式、桌面设置。
  • sudo权限预设:Live用户的无密码sudo权限是通过/etc/sudoers.d/ubuntu-live文件预先配置的,不需要手动加入sudo组;普通用户需要手动添加到sudo组,且必须设置密码才能使用sudo。
  • 无密码登录:Live用户没有设置密码,系统启动时自动登录;普通用户创建时必须设置密码(除非用特殊命令跳过),登录时需要输入密码。
  • 临时存储特性:Live用户的家目录在tmpfs中,重启即清空;普通用户家目录存储在硬盘,内容永久保留。
  • 特殊环境变量:Live用户会加载一些专属的环境变量,标识当前处于Live模式,部分软件会根据这个变量调整行为(比如系统安装器会自动识别Live环境并启动安装流程)。

备注:内容来源于stack exchange,提问作者MakisH

火山引擎 最新活动