partition 模块:
分区模块,用于设置分区界面的一些默认值,绝大部分配置可以在分区界面手动修改。
efi:mountPoint:“/boot/efi”推荐尺寸:最小300MiB尺寸:32MiB标签:“efi”
这个是efi分区选项,如果是bios启动,这个没有用,efi下必须有此分区。mountPoint是指efi分区的挂载点,Magic为/boot/efi,有些发行版本(如kaOS)需要设置成/boot。recommendedSize是指推荐的efi分区大小,默认300M。minimumSize是efi分区的最小大小,安装允许设置成比推荐大小小的分区,但会警告,比最小大小小的分区无法设置,这两个值本身也不能小于32M。label是分区的名称,只在GPT分区下有用。magic设置如上。
userSwapChoices: - none # 不创建swap,不使用swap - small # 4G大小 - suspend # 至少和内存一样大 # - reuse # 使用现有的swap分区 (目前还不支持) - file # 使用交换文件而不是交换分区
这个是在自动分区时用来指定swap分区的生成方式,如果只有一种,就不显示在界面上。none是没有swap分区,small有小的swap分区,规则是4G内存以下,就是内存*2,4G-8G内存,就是8G,8G以上仍然是8G,同时分区大小不超过可用磁盘的10%;suspend和small的规则基本一致,只是超过8G,就是内存大小,没有10%的限制;这两种情况实际分区大小都会略超过一点,大概10%,比如8G内存,可能分配8.8G的空间。使用file的话,需要有fstab模块,以便创建文件和挂载。magic保持默认。
SwapPartitionName:交换
swap分区名称,只在GPT上有用。magic保持默认不设置。
luks世代:luks1
这个是指定分区加密的设置,因为grub启动分区如果加密了,需要grub支持加密分区启动,默认的情况下luks1在grub下的支持最好。如果用luks2,一般的grub2是不支持luks2+Argon2id的加密组合的,有些发行版有增强包可以支持,如果没有增强包的,这里如果设置成luks2,只能使用luks2+PBKDF2的加密组合。所以默认设置为luks1,以提供更好的兼容性,如果对安全有高要求,可以设置成luks2。
#allowZfs加密:true
这个是设置Zfs是否允许加密,不用zfs的话,不用管。使用zfs且grub不支持zfs加密的情况下,可以设置为false,否则都是true。
drawNestedPartitions:true
上面是显示嵌套分区(比如逻辑分区)的设置,保持默认true就好。
always显示分区标签:true
在手动分区界面上显示/隐藏分区卷标,保持默认true就好。
#allow手动分区:true
是否允许手动分区,如果设置为false,则安装时无法调整分区,不过仍然可以使用取代一个分区、并存安装和抹除整个磁盘等。对于定制安装有用,Magic保持默认允许手动分区。
#showNotEncryptedBootMessage:true
是否显示未加密的启动分区警告,当根分区加密而/boot分区未加密时提示一个警告,如果设置成false,就不显示警告,Magic保持默认。
initial分区选项:无
初始的分区方式选择,包括erase(抹除整个磁盘,按默认分区方案分区),replace(替代一个分区),alongside(并存安装,缩小一个现有分区),manual(手动分区),none(不选择),Magic使用none。
initialSwapChoice:无
初始的swap分区选择,可选项参照上面的swap分区选择,默认为none,无swap分区。
#armInstall:错误
分区时保留驱动器开头的16M为空,arm用的u-boot一般是在这里,Magic暂不考arm架构,所以是false。
默认人工类型:GPT
默认分区表格式,可以是gpt和msdos(即mbr格式)。这是选择抹除整个磁盘的分区选项时的默认选择,考虑到目前efi为主流,所以默认为gpt。可以在分区界面修改。
user模块:
这个模块是用来设置系统的hostname、用户和自动登录等内容的。
defaultGroups:
- name: users
must_exist: true
system: true
- name: wheel
must_exist: false
system: true
这个是用来指定默认需要建立的用户组的,不过Magic其实本身已经有了,这个配置可以忽略。name是组名称,如果系统里没有就创建此组,有的话就忽略;must_exist指定系统里是否必须有此组,这个如果设置成true,如果系统里没有此组,会中断安装程序;system指定是否是系统组,如果设置为true,组ID(GID)会小于1000,否则就会大于等于1000。
#sudoersGroup: wheel
指定允许使用sudo的组名称,Magic本身在系统内已经设置,所以这个注释掉。
#autologinGroup: autologin
指定自动登录用户的组名称,Magic不需要,注释掉。
sudoersConfigureWithGroup: false
有些发行版禁用了root用户,只能sudo。这里的如果是false,sudo运行时不能指定用户组,如果设置成true,sudo时可以指定用户组,从而实现更精细的控制,Magic有root用户可用,所以这里是false。
setRootPassword: true
是否设置root用户密码,如果这里设置成false,相当于禁用root用户,并且安装界面也会隐藏“是否为管理员使用同一密码”选项。
doReusePassword: false
是否为root用户使用同一密码的选项。
doAutologin: false
设置是否自动登录,对只有一个用户的系统来说,设置自动登录比较方便。默认为false,不自动登录 。
passwordRequirements:
minLength: 6 # Password at least this many characters
# maxLength: -1 # Password at most this many characters
libpwquality:
- minlen=6
- minclass=0
密码强度设置,minLength是最小长度,maxLength是最大长度,-1代表无限制。calamares使用libpwquality库验证密码,除了上面的minlen/minclass以外,还有maxrepeat/maxsequence/usersubstr/badwords等配置可用。
allowWeakPasswords: false
是否允许弱密码,默认不允许。
allowWeakPasswordsDefault: false
是否默认弱密码,默认不允许。
user:
shell: ""
forbidden_names: [ root ]
home_permissions: "o700"
安装程序界面可以输入用户名,这里可以配置一些添加用户时的默认行为,shell可以显示设置为空,就像现在这样,这样添加用户时完全依赖系统的配置,也可以注释掉,这时候默认是/bin/bash,也可以指定任何路径(如/bin/zsh),添加用户时将以此为shell,但安装程序不检查路径是不是存在。forbidden_names是禁止使用的登录名,root和nobody默认就有,可以添加其它用户。home_permissions是用户主目录权限,不设置的话使用系统默认。
hostname:
location: EtcFile
writeHostsFile: true
template: "${login}-${product}"
forbidden_names: [ localhost ]
这是设置主机名的配置,location是指主机名的设置方式:EtcFile/Etc是直接写入/etc/hostname(大多数发行版本是这个,Magic暂时也是);Hostnamed是使用systemd的推荐方式,通过 DBus 调用 systemd-hostnamed 服务(支持动态更改);Transient:只设置临时主机名(重启后丢失),并删除配置文件;None:不设置主机名。writeHostsFile设置为true时写入/etc/hostname,为false时不写入。template是主机名建议模板,可以用first(姓),name(名),login(用户名),product/product2(硬件型号),cpu,host(live系统的主机名)。forbidden_names是禁用的主机名,至少要禁用localhost。
allowActiveDirectory: false
是否加入AD域,依赖realmd。默认不加入。
presets:
fullName:
# value: "OEM User"
editable: true
loginName:
# value: "oem"
editable: true
预设值,保持默认即可。
removeuser模块:
这个模块用来删除用户,像Magic安装的时候用的live系统的文件,所以会把live系统的用户一并带到安装后的系统中,这样可以通过个模块把这个用户删除。
username: liveuser
就这一个配置,指定要删除的用户名,只能删除一个。一般就是live系统的普通用户。
summary模块:
显示安装前的信息摘要,没有配置文件。同样功能的还有一个summaryq,是支持qml的模块。
mount模块:
只在执行阶段有的模块,挂载有关文件系统。
extraMounts:
- device: proc
fs: proc
mountPoint: /proc
- device: sys
fs: sysfs
mountPoint: /sys
- device: /dev
mountPoint: /dev
options: [ bind ]
- device: tmpfs
fs: tmpfs
mountPoint: /run
- device: /run/udev
mountPoint: /run/udev
options: [ bind ]
- device: efivarfs
fs: efivarfs
mountPoint: /sys/firmware/efi/efivars
efi: true
除了在分区模块设定好的文件系统以外,额外挂载的一些文件系统(指安装目标系统上)。device是设备名,fs是文件系统类型,mountPoint是挂载占,options是挂载的选项(mount -o 后面的内容),efi如果设置为true说明挂载的是UEFI固件(可选)。
btrfsSubvolumes:
- mountPoint: /
subvolume: /@root
- mountPoint: /boot
subvolume: /@boot
- mountPoint: /home
subvolume: /@home
Btrfs文件系统的子卷布局,一般保持默认即可,Magic默认文件系统是ext4,btrfs测试的不是很够。
btrfsSwapSubvol: /@swap
brtfs下的swap文件,这个只在根文件系统是btrfs且使用交换文件的时候起作用。
mountOptions:
- filesystem: default
options: [ defaults ]
- filesystem: efi
options: [ defaults, umask=0077 ]
- filesystem: btrfs
options: [ defaults, compress=zstd:1 ]
- filesystem: btrfs_swap
options: [ defaults ]
设置挂载文件系统的默认选项,filesystem指文件系统,options指默认选项,一般保持默认就好。

标签: