calamares 的配置定制(二)

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指默认选项,一般保持默认就好。

发表回复