ORG.FREEDESKTOP.IMPORT1(5) org.freedesktop.import1 ORG.FREEDESKTOP.IMPORT1(5) org.freedesktop.import1 - D-Bus systemd-importd systemd-importd.service(8) . systemd-nspawn(1) . importctl pull-raw importctl pull-tar . D-Bus. systemd-importd.service(8) systemd-machined.service(8). D-Bus systemd-machined org.freedesktop.machine1(5). (Manager) (bus): node /org/freedesktop/import1 { interface org.freedesktop.import1.Manager { methods: ImportTar(in h fd, in s local_name, in b force, in b read_only, out u transfer_id, out o transfer_path); ImportTarEx(in h fd, in s local_name, in s class, in t flags, out u transfer_id, out o transfer_path); ImportRaw(in h fd, in s local_name, in b force, in b read_only, out u transfer_id, out o transfer_path); ImportRawEx(in h fd, in s local_name, in s class, in t flags, out u transfer_id, out o transfer_path); ImportFileSystem(in h fd, in s local_name, in b force, in b read_only, out u transfer_id, out o transfer_path); ImportFileSystemEx(in h fd, in s local_name, in s class, in t flags, out u transfer_id, out o transfer_path); ExportTar(in s local_name, in h fd, in s format, out u transfer_id, out o transfer_path); ExportTarEx(in s local_name, in s class, in h fd, in s format, in t flags, out u transfer_id, out o transfer_path); ExportRaw(in s local_name, in h fd, in s format, out u transfer_id, out o transfer_path); ExportRawEx(in s local_name, in s class, in h fd, in s format, in t flags, out u transfer_id, out o transfer_path); PullTar(in s url, in s local_name, in s verify_mode, in b force, out u transfer_id, out o transfer_path); PullTarEx(in s url, in s local_name, in s class, in s verify_mode, in t flags, out u transfer_id, out o transfer_path); PullRaw(in s url, in s local_name, in s verify_mode, in b force, out u transfer_id, out o transfer_path); PullRawEx(in s url, in s local_name, in s class, in s verify_mode, in t flags, out u transfer_id, out o transfer_path); PullOci(in s ref, in s local_name, in s class, in t flags, out u transfer_id, out o transfer_path); ListTransfers(out a(usssdo) transfers); ListTransfersEx(in s class, in t flags, out a(ussssdo) transfers); CancelTransfer(in u transfer_id); ListImages(in s class, in t flags, out a(ssssbtttttt) images); signals: TransferNew(u transfer_id, o transfer_path); TransferRemoved(u transfer_id, o transfer_path, s result); }; interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Properties { ... }; }; ImportTar()/ImportTarEx() ImportRaw()/ImportRawEx() . ( ) tar raw . . ImportTar()/ImportTarEx() tar gzip(1) zstd(1) bzip2(1) xz(1). systemd-importd ( ) . ImportRaw()/ImportRawEx() raw qcow2 MBR GPT gzip zstd bzip2 xz. ( ). . . /var/lib/machines/. tar btrfs(8) . raw .raw. ImportTar()/ImportRaw() force . . read_only . ImportTarEx()/ImportRawEx() flags 64 0 force 1 read_only. class "machine" "portable" "sysext" "confext". . . org.freedesktop.import1.Transfer . TransferRemoved() . . ExportTar()/ExportTarEx() ExportRaw()/ExportRaw() tar raw . ( ) tar raw. /. . : "uncompressed" ( ) "xz" "bzip2" "gzip" "zstd" . tar ExportTar()/ExportTarEx() ExportRaw()/ExportRawEx(). tar . . ImportTar()/ImportTarEx() ImportRaw()/ImportRawEx() . ExportTarEx()/ExportRawEx() 64 . PullTar()/PullTarEx() PullRaw()/PullRawEx() URL. URL tar raw "http://" "https://" xz bzip2 gzip zstd. . ImportTar()/ImportTarEx() ImportRaw()/ImportRawEx() . . "no" "checksum" "signature". "no" "checksum" SHA256SUM SHA256 "signature" SHA256SUM gpg(8) . PullTar()/PullRaw() ( "true") ( "false"). PullTarEx()/PullRawEx() 64 0 "force" 1 "read_only" 2 "keep_download" . ..._Ex() ( ). . PullOci() PullTarEx() PullRawEx() OCI OCI. OCI . ( systemd.mstack(7) OCI). PullTar()/PullTarEx() PullRaw()/PullRawEx() . 64 0 "force" 1 "read_only" . . ImportFileSystem()/ImportFileSystemEx() ImportTar()/ImportTarEx() . . ListTransfers()/ListTransfersEx() . ( : "import-tar" "import-raw" "export-tar" "export-raw" "pull-tar" "pull-raw") ( URL / ) ( ListTransfersEx() : "machine" "portable" "sysext" "confext") 0.0 ( 0%) 1.0 ( 100%) . CancelTransfer() . . ListImages() . . . . . : ( UNIX) ( ) ( ). TransferNew() . . TransferRemoved() . : "done" ( ) "canceled" () "failed" (). node /org/freedesktop/import1/transfer/_1 { interface org.freedesktop.import1.Transfer { methods: Cancel(); signals: LogMessage(u priority, s line); ProgressUpdate(d progress); properties: @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly u Id = ...; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Local = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Remote = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Type = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("const") readonly s Verify = '...'; @org.freedesktop.DBus.Property.EmitsChangedSignal("false") readonly d Progress = ...; }; interface org.freedesktop.DBus.Peer { ... }; interface org.freedesktop.DBus.Introspectable { ... }; interface org.freedesktop.DBus.Properties { ... }; }; Cancel() . . CancelTransfer() ( ) . Id . Local Remote Type ( : URL /: ) ( ListTransfer() ). Verify ( ). Progress 0.0 1.0. 500 . LogMessage() . . ProgressUpdate() . 0.0 1.0 . 1. org.freedesktop.import1.Manager $ gdbus introspect --system \ --dest org.freedesktop.import1 \ --object-path /org/freedesktop/import1 2. org.freedesktop.import1.Transfer $ gdbus introspect --system \ --dest org.freedesktop.import1 \ --object-path /org/freedesktop/import1/transfer/_1 D-Bus [1]. ImportTarEx() ImportRawEx() ImportFileSystemEx() ExportTarEx() ExportRawEx() PullTarEx() PullRawEx() ListTransfersEx() ListImages() 256. PullOci() 260. ProgressUpdate() 256. systemd(1) systemd-importd.service(8) importctl(1) 1. https://0pointer.de/blog/projects/versioning-dbus.html 3 . . : . systemd 260.2 ORG.FREEDESKTOP.IMPORT1(5)