@startuml
'https://plantuml.com/activity-diagram-beta

start
if (InLive()?) then (no)
    :读取当前系统/etc/fstab;
    :返回json数据;
    stop
else (yes)
    :lsblk获取所有磁盘分区列表list;
    while (list empty?)
        if (crypto_LUKS?) then (yes)
            :cryptsetup luksOpen /dev/sdx1 xxx;
            :输入磁盘密码;
            :挂载映射/dev/mapper/xxx;
        else (no)
            :挂载磁盘分区设备节点;
        endif
        if (/挂载点/etc/lsb_release? uos) then (yes)
            :添加到uos列表uos_list;
            :umount 挂载点;
        endif
    endwhile

    while (uos_list empty?)
        :挂载分区;
        :读取fstab;
        :挂载其他分区;
    endwhile
    stop
endif

@enduml
