IronFlockOS’u Bir Sürücüye Yazma
ironflock os flash, yeni bir cihazın başlatılacağı sürücüyü hazırlar. IronFlockOS’u ve cihaz yapılandırma dosyasını (.flock) sürücüye yazar; cihaz ilk açılışında kaydolur, yani o .flock dosyasının cihazı olarak IronFlock’a bağlanır. Şunları hazırlayabilirsiniz:
- cihazın başlatılacağı bir USB bellek, SD kart veya harici disk,
- IronFlockOS’u bir PC’nin dahili diskine kuran bir yükleyici bellek,
- bir sanal makinenin başlatılacağı bir disk görüntüsü dosyası.
FlockFlasher aynı iş için kullanılan masaüstü uygulamasıdır. Bir cihazın .flock dosyasını almak için bkz. Cihaz Bağlama.
Tipik Bir Çalıştırma
# 1. Belleği veya SD kartı takın, ardından yazılabilecek sürücüleri listeleyin
ironflock os drives
# 2. İsteğe bağlı: kataloğun sunduğu görüntüleri listeleyin
ironflock os images
# 3. IronFlockOS'u ve cihazın .flock dosyasını sürücüye yazın
sudo ironflock os flash -c device.flock -d /dev/sdbos flash planını gösterir ve sürücüyü silmeden önce sorar. İş bittiğinde sürücüyü cihaza takın ve cihazı ondan başlatın.
ironflock os images
Bir sürücüye yazılabilecek IronFlockOS görüntülerini listeler. Varsayılan olarak üretim kanalındaki sürümün görüntülerini listeler.
ironflock os images [flags]Linux ve macOS’ta çalışır. Root gerektirmez. Hiçbir şey sormaz.
Bayraklar
| Bayrak | Anlamı |
|---|---|
--channel <name> | Sürümü listelenecek kanal: production (varsayılan) veya test. |
--version <x.y.z> | Bir kanalın sürümü yerine listelenecek sürüm, örneğin 0.13.0. |
--target <target> | Yalnızca bu donanım hedefinin görüntüleri: amd64-efi, arm64-efi veya rpi-arm64. |
--variant <variant> | Yalnızca bu varyantın görüntüleri: base, nvidia veya installer. |
--kernel <kernel> | Yalnızca bu çekirdeğe sahip görüntüler: std veya rt. |
Her komutun bayrakları Bayraklar, Çıktı ve Çıkış Kodları sayfasındadır.
Ne Yapar
Liste, indirme sunucusundaki imzalı IronFlockOS kataloğundan gelir: <download base>/ironflockos/manifest.json. ironflock kataloğu yalnızca Ed25519 imzası ironflock içine yerleşik katalog anahtarına göre doğrulandığında kullanır. FlockFlasher ve cihaz ajanı aynı anahtarı sabitler. Bu denetimi hiçbir bayrak ve hiçbir ortam değişkeni kapatmaz. Başka bir indirme tabanı belirtmediğiniz sürece indirme tabanı IronFlock bulutudur; bkz. İndirme Tabanı.
Doğrulanan son katalog, her indirme tabanı için bir kopya olmak üzere bir önbellek klasöründe saklanır:
| Kullanıcı | Linux | macOS |
|---|---|---|
| siz | ~/.cache/ironflock/catalog/ | ~/Library/Caches/ironflock/catalog/ |
| root | /var/cache/ironflock/ altında | /var/root/Library/Caches/ironflock/ altında |
İndirme sunucusuna erişilemediğinde saklanan kopya onun yerine geçer ve stderr’de bir not görünür. Aynı indirme tabanının, saklanan kopyadan daha eski bir kataloğu reddedilir.
Bir görüntü, donanım hedefine, varyantına ve çekirdeğine göre adlandırılır: ironflockos-<target>-<variant>, gerçek zamanlı çekirdek için sonuna -rt eklenir. ironflockos-amd64-efi-base-rt, UEFI’li x86-64 PC’ler için gerçek zamanlı çekirdekli temel sistemdir. Hedefler şunlardır:
amd64-efi— UEFI’li x86-64 PCarm64-efi— UEFI’li ARM64 makinerpi-arm64— Raspberry Pi 4, 400 ve CM4; Raspberry Pi 5 ve CM5
Varyantlar base, nvidia ve installer şeklindedir. Yükleyici görüntüsü, taşıdığı görüntülerden birini kendisinden başlatılan makinenin diskine kuran bir USB bellek oluşturur. Bu ironflock sürümünün tanımadığı bir varyanta, çekirdeğe veya mimariye ait (daha yeni bir sürümden gelen) bir görüntü, stderr’de bir notla birlikte dışarıda bırakılır.
Örnekler
# Güncel üretim sürümünün görüntüleri
ironflock os images
# Yalnızca Raspberry Pi görüntüleri
ironflock os images --target rpi-arm64
# Test kanalının görüntüleri, JSON olarak
ironflock os images --channel test --jsonSonuç
IMAGE VERSION SIZE HARDWARE
ironflockos-amd64-efi-base 0.13.0 638.1 MB x86-64 PC with UEFI
ironflockos-amd64-efi-base-rt 0.13.0 650.4 MB x86-64 PC with UEFI
ironflockos-amd64-efi-nvidia 0.13.0 1.0 GB x86-64 PC with UEFI
ironflockos-amd64-efi-installer 0.13.0 2.5 GB x86-64 PC with UEFI, installer stick for base, base-rt, nvidia
ironflockos-arm64-efi-base 0.13.0 582.4 MB ARM64 machine with UEFI
ironflockos-arm64-efi-base-rt 0.13.0 594.1 MB ARM64 machine with UEFI
ironflockos-arm64-efi-installer 0.13.0 1.5 GB ARM64 machine with UEFI, installer stick for base, base-rt
ironflockos-rpi-arm64-base 0.13.0 639.4 MB Raspberry Pi 4, 400 and CM4; Raspberry Pi 5 and CM5--json ile (burada --target rpi-arm64 ile birlikte):
{"issued_at":"2026-11-10T09:41:47Z","key_id":"036ef3bd","from_cache":false,"channels":{"production":"0.13.0","test":"0.13.0"},"images":[{"image_id":"ironflockos-rpi-arm64-base","version":"0.13.0","channels":["production","test"],"target":"rpi-arm64","variant":"base","kernel":"std","architecture":"arm64","boards":["raspberrypi4","raspberrypi5"],"hardware":["Raspberry Pi 4, 400 and CM4","Raspberry Pi 5 and CM5"],"file":"ironflockos-rpi-arm64-base-0.13.0.img.gz","url":"https://instance-registry.ironflock.com/dl/ironflockos/0.13.0/ironflockos-rpi-arm64-base-0.13.0.img.gz","size":639408901,"sha256":"9abd17f2098dfa236d440005222d0a6b583546ea9768e5eca8807c4e24ec88db"}]}issued_at ve key_id kataloğu tanımlar, channels her kanalın sürümünü belirtir ve indirme sunucusu yanıt vermediğinde from_cache değeri true olur. Her görüntünün url, size ve sha256 değerleriyle birlikte bir file alanı vardır. boards, bir .flock dosyasının belirttiği kart modelleridir (board.model), hardware ise bunların adlarıdır. Bir yükleyici görüntüsünde ayrıca taşıdığı görüntülerin kimlikleri olan payloads bulunur.
Başarısız Olduğu Durumlar
- Çıkış kodu 2 — birlikte verilen
--channelve--version, geçerli bir sürüm numarası olmayan bir sürüm ya da kataloğun içermediği bir kanal, sürüm, hedef, varyant veya çekirdek. Hata, katalogda nelerin bulunduğunu belirtir. - Çıkış kodu 1 — katalog doğrulanmıyor, 64 KiB’tan büyük, bu
ironflocksürümünün okuyabileceği bir katalog değil ya da saklanan kopyadan eski; veya katalog alınamıyor ve saklanan bir kopya yok.
ironflock os drives
Bu makinenin, bir IronFlockOS görüntüsünün yazılabileceği sürücülerini listeler: USB bellekler, SD kartlar, harici diskler. Hiçbir sürücüye yazmaz, hiçbir sürücünün bağlantısını kaldırmaz ve hiçbir sürücüyü açmaz.
ironflock os drives [flags]Linux ve macOS’ta çalışır. Root gerektirmez. Hiçbir şey sormaz. Linux’ta lsblk (util-linux paketinden) çalıştırır ve /proc ile /sys okur. macOS’ta diskutil list, diskutil info ve hdiutil info çalıştırır.
Bayraklar
| Bayrak | Anlamı |
|---|---|
--all | Reddedilen sürücüleri de nedeniyle birlikte listeler. |
Her komutun bayrakları Bayraklar, Çıktı ve Çıkış Kodları sayfasındadır.
Hangi Sürücüler Reddedilir
os flash, os drives komutunun reddettiği sürücüleri aynı nedenlerle reddeder. Bir sürücü şu durumlarda reddedilir (geçerli olan ilk neden gösterilir):
- Bir bölümse, örneğin
/dev/sdb1. Ret mesajı bölümün diskini belirtir: bir görüntü diskin tamamına yazılır. - Disk değilse: bir optik sürücü, bellekteki bir disk (
zram), başka sürücüler üzerine kurulmuş bir disk birimi (LVM, dm-crypt, RAID, device-mapper; macOS’ta bir APFS kapsayıcısı, bir AppleRAID kümesi veya başka bir sentezlenmiş disk) ya da komutun tanımadığı bir aygıt türü (nbd,mtdblock). - Çalışan sistemin bir kısmını tutuyorsa:
/,/boot,/efi,/usr,/var,/etcveya bunlardan birinin altındaki bir bağlama noktası (/boot/efikonumundaki EFI bölümü,/var/lib/dockerkonumundaki Docker verileri),/home,/opt,/srv,/data, swap ya da canlı bir sistemin başlatıldığı ortam. Bu, sistem sürücüde nasıl durursa dursun geçerlidir: bir bölümde; LVM, dm-crypt, RAID veya device-mapper üzerinden; birkaç sürücüye yayılan bir btrfs dosya sisteminde; bir ZFS havuzunda; bir overlay içinde ya da bir loop aygıtının okuduğu bir dosyada. macOS’ta:/ve/Systemaltındaki disk birimleri, APFS kapsayıcıları üzerinden onları tutan diske kadar. - Kullanımdaysa: LVM, dm-crypt, RAID veya device-mapper tarafından, bağlı bir veri kümesine sahip bir ZFS havuzu tarafından ya da üzerindeki bir dosyayı okuyan bir loop aygıtı tarafından. macOS’ta ayrıca üzerindeki bir APFS kapsayıcısı, bir AppleRAID kümesi, dosyası bu sürücüde bulunan bir disk görüntüsü ya da sisteme eklenmemiş Core Storage, AppleRAID veya APFS kapsayıcısı tarafından. macOS, APFS kapsayıcısı olan bir belleği yalnızca bellek silindiğinde bırakır; bu yüzden ret nedeni belleği silen komutu belirtir, örneğin
diskutil eraseDisk FAT32 IRONFLOCK MBR /dev/disk6(ya da Disk İzlencesi’ndeki Sil). - Makinenin dahili diskiyse: bir SATA veya NVMe disk, bir kartın eMMC belleği. Bir sürücü, USB veya aygıtları çıkarılabilen başka bir veri yolu üzerinden bağlanmadıkça dahilidir. Yerleşik bir kart okuyucu dahilidir, ancak içindeki SD kart çıkarılabilir ortamdır ve bir Mac’te de sunulur. macOS’ta nerede olduğunu söylemeyen bir disk dahili sayılır.
os flash --allow-internal, başka hiçbir neden reddetmediğinde--drivebayrağının belirttiği dahili bir diske yazar. - Çalışan sistemin bir kısmını tutuyor olabilirse: çalışan sistemin bir kısmı bir sürücüye kadar izlenemediğinde her sürücü reddedilir. Sistemi kendisini çalıştıran makinede bulunan bir konteynerde ve macOS’ta Core Storage gibi hiçbir fiziksel diske ulaşmayan bir disk birimindeki bir sistemde durum budur.
- Salt okunursa, örneğin kilitli bir SD kart.
- Ortam yoksa, örneğin kartsız bir kart okuyucu.
Bağlı dosya sistemleri olan bir sürücü sunulur; mounted bunları listeler ve os flash yazmadan önce bunların bağlantısını kaldırır. Loop aygıtları ve macOS’ta eklenmiş disk görüntüleri listelenmez, ancak os flash, --drive bayrağının belirttiği böyle bir aygıta yazar.
IronFlockOS çalıştıran bir cihazda komut stderr’de ve warnings içinde uyarır: bir hedefin her IronFlockOS görüntüsü aynı bölüm UUID’lerine sahiptir; bu yüzden ikinci bir IronFlockOS sürücüsü takılıyken çalışan sistem kendi bölümlerini sürücününkilerden ayırt edemez.
Örnekler
# Yazılabilecek sürücüler
ironflock os drives
# Tüm sürücüler, reddedilen her biri için nedeniyle birlikte
ironflock os drives --all
# Sürücüler JSON olarak
ironflock os drives --jsonSonuç
Linux’ta:
DEVICE SIZE BUS MODEL
/dev/sdb 15.9 GB usb SanDisk Ultra
/dev/mmcblk0 31.9 GB mmc SD32G--all ile:
DEVICE SIZE BUS MODEL WRITABLE
/dev/sda 2.0 TB sata WDC WD20EZBX-00AYRA0 no: is an internal disk of this machine
/dev/sdb 15.9 GB usb SanDisk Ultra yes
/dev/mmcblk0 31.9 GB mmc SD32G yes
/dev/nvme0n1 1.0 TB nvme Samsung SSD 980 PRO 1TB no: holds / of the running systemBir Mac’te, --all ile:
DEVICE SIZE BUS MODEL WRITABLE
/dev/disk0 500.3 GB Apple Fabric APPLE SSD AP0512R no: holds / of the running system
/dev/disk1 524.3 MB Apple Fabric APPLE SSD AP0512R no: is a volume (APFS container), not a disk
/dev/disk2 5.4 GB Apple Fabric APPLE SSD AP0512R no: is a volume (APFS container), not a disk
/dev/disk3 494.4 GB Apple Fabric APPLE SSD AP0512R no: is a volume (APFS container), not a disk
/dev/disk5 15.9 GB Secure Digital Built In SDXC Reader yes--json ile (kısaltılmış):
{"drives":[{"device":"/dev/sdb","kind":"disk","size":15931539456,"bus":"usb","removable":true,"internal":false,"read_only":false,"vendor":"SanDisk","model":"Ultra","serial":"4C530001230812115352","mounted":[{"device":"/dev/sdb1","mountpoint":"/media/anna/STICK"}],"system":[],"maybe_system":[],"holders":[],"writable":true},{"device":"/dev/mmcblk0",...}],"warnings":[]}| Alan | Anlamı |
|---|---|
size | Bayt cinsinden boyut. |
bus | Sistemin kendi adlandırmasıyla veri yolu: Linux’ta usb, sata, nvme, mmc; macOS’ta USB, Secure Digital, Apple Fabric, PCI-Express. |
removable | Ortam sürücüden çıkarılabilir. |
serial | Seri numarası. Bir Mac seri numarası vermez. |
mounted | Sürücünün bağlı dosya sistemleri. |
system | Sürücünün, çalışan sistemin hangi kısmını tuttuğu. |
maybe_system | Çalışan sistemin hangi kısmının bir sürücüye kadar izlenemediği. |
holders | Sürücüyü neyin kullandığı. |
writable, refusal | Reddedilen bir sürücüde (--all ile) "writable":false bulunur, neden de refusal içindedir. |
Yazılacak sürücü yoksa metin bunu söyler, drives boştur ve çıkış kodu 0’dır.
Başarısız Olduğu Durumlar
- Çıkış kodu 3 — Linux’ta
lsblkkurulu değil; ya da komut Linux veya macOS dışında bir sistemde çalışıyor.
ironflock os flash
IronFlockOS’u bir sürücüye (USB bellek, SD kart, harici disk) yazar ve cihazın .flock dosyasını sürücünün IRONFLOCKOS bölümüne, yani her IronFlockOS sürücüsünde bulunan bu adlı FAT32 bölümüne koyar. Cihaz ilk açılışında bu dosyayla kaydolur. --output ile bunun yerine aynısını sanal makine için bir disk görüntüsü dosyasına yazar.
Uyarı: Sürücüdeki her şey silinir. Yazmadan önce sürücü adını
ironflock os drivesile denetleyin.os flashhiçbir zaman kendi başına sürücü seçmez.
ironflock os flash -c <device.flock> (-d <drive> | --output <file>) [flags]| Linux | macOS | |
|---|---|---|
| Çalışır | evet | evet |
| Root | bir sürücüye yazmak için gerekir | bir sürücüye yazmak için gerekir; sürücünün ham aygıtına yazma izniniz varsa gerekmez |
| Sorular | sürücüyü silmeden veya --output dosyasını değiştirmeden önce; “No” yanıtı önceden seçilidir | aynı |
Root olmadan hata, başında sudo bulunan, yazılacak komut satırını belirtir. macOS’ta sürücünün ham aygıtına yazma izni olan bir kullanıcı root gerektirmez: bir disk görüntüsünü ekleyen kullanıcı ya da makine sahibinin sürücüyü verdiği bir kullanıcı, örneğin sudo chown <user> /dev/disk4 /dev/rdisk4 ile. --output ile komut root gerektirmez. Ayrıca bkz. Root Yetkileri.
Bayraklar
| Bayrak | Anlamı |
|---|---|
-c, --config <file> | Cihazın .flock dosyası. Zorunludur. |
-d, --drive <drive> | Silinecek ve yazılacak sürücü. Linux’ta /dev/sdb veya /dev/mmcblk0 ya da /dev/disk/by-id altındakiler gibi ona giden bir bağlantı. macOS’ta /dev/disk4 (ayrıca /dev/rdisk4 veya disk4). ironflock os drives bunları listeler. |
--output <file> | Bir sürücü yerine yazılacak dosya: sanal makine için ham bir disk görüntüsü. |
--image <id> | Yazılacak görüntü, ironflockos- önekiyle veya öneksiz, örneğin amd64-efi-nvidia. Varsayılan: .flock dosyasının belirttiği donanım için görüntü. |
--image-file <file> | Önceden indirilmiş görüntü dosyası. Kataloğun bu görüntü için verdiği dosya olmalıdır. |
--installer | Görüntüyü bir PC’nin dahili diskine kuran yükleyici belleği yazar. |
--installer-disk <rule> | Yükleyicinin yazacağı disk: largest (varsayılan), /dev/<name> veya by-id:<id>. |
--installer-confirm yes|no | Yükleyicinin yazmadan önce PC’nin konsolunda sorup sormayacağı. Varsayılan yes. |
--installer-after poweroff|reboot | Yükleyici işini bitirdiğinde PC’nin ne yapacağı. Varsayılan poweroff. |
--installer-allow-usb yes|no | Yükleyicinin bir USB diske yazıp yazamayacağı. Varsayılan no. |
--wifi-ssid <name> | Cihazın .flock dosyasındaki yerine katılacağı WiFi ağı. |
--wifi-password-file <file> | Tek satırı --wifi-ssid ağının parolası olan bir dosya veya pipe (/dev/stdin). |
--allow-internal | --drive bayrağının belirttiği sürücüye, bu makinenin dahili diski olsa bile yazar. |
Her komutun bayrakları Bayraklar, Çıktı ve Çıkış Kodları sayfasındadır.
Ne Yapar
- Sürücüyü denetler.
--drivedeğerini çözümler ve herhangi bir şeyi okumadan, almadan veya sormadan önceos driveskomutunun verdiği nedenlerle reddeder.--driveolmadan (ve--outputolmadan) yazabileceği sürücüleri belirtir ve çıkış kodu 2 ile sona erer. .flockdosyasını okur. Dosya, adı*.flockolan, en fazla 5 MiB büyüklüğünde,secretvedevice_keyiçeren bir JSON nesnesi olmalı;nameveserial_numberdeğerleri de sade adlar olmalıdır.- Görüntüyü seçer; bunu
os imagesgibi aldığı ve doğruladığı imzalı katalogdan yapar.--imagebayrağının belirttiği görüntüyü, yoksa.flockdosyasının belirttiği donanımın varsayılan görüntüsünü (base varyantı, standart çekirdek) alır. Donanımı dosyanınboard.modeldeğeri, yoksa katalogda bu mimari için tek bir donanım varsaarchitecturedeğeri belirler.--installerile o donanımın, görüntüyü taşıyan yükleyici belleğini alır. - Planı stderr’de gösterir: görüntü, dosyasının nereden geldiği,
.flockdosyası (adıyla), WiFi, sürücü ve sürücünün bağlantısı kaldırılacak dosya sistemleri. Ardından sorar. “No” önceden seçilidir; böylece yalnızca Enter’a basmak hiçbir şeyi silmez. - Görüntü dosyasını alır:
--image-filedosyası, yoksa önbellekteki kopya, yoksa önbelleğe yapılan ve önceki bir indirmenin durduğu yerden devam eden bir indirme. Root olarak önbellek Linux’ta/var/cache/ironflock/images, macOS’ta/var/root/Library/Caches/ironflock/imagesolur. İndirme bir.partdosyasına gider. Her dosya yalnızca boyutu ve SHA-256 değeri kataloğunkiyle aynı olduğunda yazılır. Bir dakika boyunca hiç bayt getirmeyen bir indirme denemesi sona erer; art arda üç böyle denemeden sonra indirmeden vazgeçilir. - Sürücüyü yeniden denetler. Sürücü planın gösterdiği sürücü olmalı ve hâlâ reddedilmemelidir: aynı aygıt, boyut, seri numarası ve ortam. Linux’ta buna üretici, model, veri yolu ve dosya sistemi, etiketi, UUID’si ve boyutuyla her bölüm dahildir. Seri numarası vermeyen macOS’ta model, veri yolu, aygıt ağacındaki yer ve UUID’leriyle bölümler denetlenir. Plandan sonra çekilen bir bellek, adını takılan bir sonraki sürücüye bırakır; böyle bir sürücüye yazılmaz ve hiçbir şeyin bağlantısı kaldırılmaz. Ardından komut planın listelediği dosya sistemlerinin, yalnızca onların, bağlantısını kaldırır ve sürücüyü yazmak için özel erişimle açar. macOS’ta, ikinci bir
os flashkomutunun aynı anda açamayacağı ham aygıt (/dev/rdisk4) üzerinden yazar. - Görüntüyü yazar, ardından sürücüyü geri okur ve karşılaştırır.
.flockdosyasını yazar:IRONFLOCKOSbölümünün kök klasörüne, bölümü bağlamadan. Bir yükleyici bellek ayrıcainstaller.confdosyasını alır.--wifi-ssidile sürücüdeki kopya o ağı belirtir;.flockdosyasının kendisi değiştirilmez.- macOS’ta sürücüyü çıkarır (
diskutil eject); böylece sürücüyü çekebilirsiniz. Çıkarma başarısız olursa sürücü yine de yazılmıştır: komut uyarır, siz de sürücüyü çekmeden önce Finder’da çıkarırsınız.
Root olarak komut bir önbellek klasörünü yalnızca bağlantı değil gerçek bir klasörse, root’a aitse ve başka kimse ona yazamıyorsa kullanır. Eksik olanı mod 0700 ile oluşturur; başka her durumda orada herhangi bir şeyi okumadan, silmeden veya indirmeden önce durur. Katalogdan bir görüntü almadan önce, önbellekte kataloğun artık listelemediği görüntü dosyalarını ve bunların yarım kalmış indirmelerini siler.
.flock dosyasının belirttiğinden başka bir donanım için verilen bir --image, plandaki bir uyarıdan sonra yazılır: cihaz uygulamalarını çalıştıramazdı. IronFlockOS çalıştıran bir cihazda plan, os drives gibi uyarır. --allow-internal ile plan, sürücünün dahili bir disk olduğu konusunda uyarır.
--yes soruyu evet ile yanıtlar. Terminal olmadan (bir pipe, bir betik) ve --yes olmadan komut sormaz ve çıkış kodu 4 ile sona erer. --json da hiçbir şey sormaz; bu yüzden bir sürücüye yazmak için --yes gerektirir. --json ile plan yazdırılmaz: stderr yalnızca ilerleme olaylarını taşır, uyarılar ise sonuçtadır. Bkz. Sorular ve Onay ve Çıktı ve JSON.
WiFi
Cihaz, .flock dosyasının belirttiği WiFi ağına katılır. --wifi-ssid ona başka bir ağ verir. IronFlockOS yalnızca parolalı bir WiFi ağına katılır; bu yüzden --wifi-ssid ve --wifi-password-file her zaman birlikte verilir. Parola bir dosyadan veya bir pipe üzerinden gelir; ps çıktısının ve kabuk geçmişinin onu göstereceği komut satırından asla gelmez. Komut parolayı hiçbir yere yazdırmaz. Sürücüdeki .flock kopyası ağı wlanssid ve password alanlarında belirtir.
Not: Parola
/dev/stdinüzerinden geldiğinde stdin bir terminal değildir; bu yüzden komut soru soramaz.--yesekleyin.
Yükleyici Bellek
--installer ile sürücü, UEFI’li bir PC (amd64-efi, arm64-efi) için yükleyici bellek olur; ironflock os images --variant installer yükleyici görüntülerini listeler. Bellek, donanımının birkaç görüntüsünü taşır; bellekteki installer.conf dosyası kuracağı görüntüyü (payload, 3. adımdaki gibi seçilen görüntü) belirtir ve verdiğiniz --installer-* bayraklarını tutar. PC bellekten başlatıldığında yükleyici:
- diski
--installer-diskdeğerine göre seçer: en büyük disk (varsayılan),/dev/<name>diski veyaby-id:<id>kimliğine sahip disk. Bir USB diske yalnızca--installer-allow-usb yesile yazar. --installer-confirm noverilmedikçe yazmadan önce PC’nin konsolunda sorar.- görüntüyü ve cihazın
.flockdosyasını o diske yazar. - PC’yi kapatır (varsayılan) ya da
--installer-after rebootile yeniden başlatır.
Belleği çekin ve PC’yi dahili diskinden başlatın. Cihaz ilk açılışında kaydolur.
Uyarı:
--installer-confirm noile yazılmış bir bellek, kendisinden başlatılan her PC’nin diskini sormadan siler. Böyle bir belleği etiketleyin ve diğer makinelerden uzak tutun.
Çalışan bir makinenin Linux’unu bellek olmadan değiştirmek için bkz. Linux’u IronFlockOS ile Değiştirme.
İndirilmiş Bir Görüntü Dosyası
--image-file, önceden indirdiğiniz bir görüntü dosyasını yazar; örneğin kataloğun görüntü dosyalarını indiremeyen bir makinede. Dosyanın adresini os images --json çıktısındaki url alanından alın. Dosya yalnızca kataloğun o görüntü için verdiği boyuta ve SHA-256 değerine sahipse yazılır.
Komut, dosyayı denetlemek için yine de imzalı kataloğa ihtiyaç duyar. Kataloğu alır ya da indirme sunucusuna erişilemediğinde, aynı indirme tabanının bir kataloğunun son doğrulandığı seferde sakladığı kopyayı kullanır. Bu kopya kullanıcıya özeldir: root olarak root’un kopyasıdır. Kendi sunucunuz da çalışır: başka bir indirme tabanıyla (--download-base veya IRONFLOCK_DL_BASE) komut kataloğu <download base>/ironflockos/manifest.json adresinden, görüntü dosyasını <download base>/ironflockos/<version>/<file> adresinden alır.
Not: Dosya yazılırken bir kez daha okunur ve SHA-256 değeri ancak yazmadan sonra yeniden bilinir. Dosyayı başka hiçbir kullanıcının değiştiremeyeceği bir yerde tutun.
Sanal Makine İçin Görüntü Dosyası
--output <file>, görüntüyü ve cihazın dosyalarını bir sürücü yerine normal bir dosyaya yazar: bir sanal makinenin disk olarak başlatıldığı ham bir disk görüntüsü. Görüntü, denetimleri ve IRONFLOCKOS içindeki dosyalar bir sürücüdekiyle aynıdır. Hiçbir sürücü aranmaz, bağlantısı kaldırılmaz veya açılmaz; bu yüzden komut root gerektirmez. --image, --image-file, bayraklarıyla birlikte --installer ve --wifi-ssid bir sürücüde olduğu gibi çalışır.
- Boyut — Plan dosyayı ve boyutunu belirtir: görüntünün açılmış hâlinin boyutu. Görüntünün henüz indirilmesi gerekiyorsa bu satır indirmeden sonra gelir.
- Soru — Yeni bir dosya hiçbir şeyi silmez ve komut sormaz. Var olan bir dosyanın yerine yenisi yazılır: plan bunu söyler ve komut önce sorar.
- Önce başka bir adla — Görüntü aynı klasörde yeni bir dosyaya,
<file>.<number>.partdosyasına gider. Dosya<file>adını ancak görüntünün tamamını tuttuğunda, geri okunduğunda veIRONFLOCKOSbölümünde cihazın dosyaları bulunduğunda alır. Başarısız olan veya kesilen bir yazma.partdosyasını kaldırır; o adda ya hiçbir şey ya da daha önce orada olan dosya değişmeden bulunur. Birkill -9veya güç kesintisi.partdosyasını geride bırakabilir. - Özel — Dosya,
.flockdosyası gibi cihazın gizli bilgisini tutar. Daha geniş izinli bir dosyanın yerine geçtiğinde de mod 0600 alır. - Seyrek — Görüntüde tam bir sıfır bloğunun bulunduğu yerlerde (4 MiB’lık bloklar), dosya delikleri destekleyen bir dosya sisteminde bir delik alır. Aynı şekilde okunur ve daha az yer kaplar.
# Root olmadan, sanal makine için bir disk görüntüsü dosyası yazın
ironflock os flash -c device.flock --output device.imgIronFlockOS catalog of 2026-11-10T09:41:47Z, signed with key 036ef3bd.
Image: ironflockos-amd64-efi-base 0.13.0, for x86-64 PC with UEFI
Image file: https://instance-registry.ironflock.com/dl/ironflockos/0.13.0/ironflockos-amd64-efi-base-0.13.0.img.gz (638.1 MB), downloaded and checked against the catalog
Device file: device.flock, for the device kitchen-pc
WiFi: Office (from the .flock)
Output: device.img, a new file: the image, unpacked; its size is known once the image is downloaded
(the progress of downloading, checking)
Unpacked, the image has 4.6 GB: the size of device.img.
(the progress of writing, reading back)
Done: IronFlockOS 0.13.0 (ironflockos-amd64-efi-base) is in device.img and read back, with device.flock in its IRONFLOCKOS partition.
Grow the file to the size of the virtual machine's disk before the machine starts from it (truncate -s 20G device.img): on its first boot IronFlockOS makes slot B and /data in that space, and the device enrolls as kitchen-pc.Görüntü, IRONFLOCKOS bölümünü ve IronFlockOS’un sırayla güncellediği iki sistem yuvasından ilkini (A yuvası) tutar. IronFlockOS ilk açılışında A yuvası kadar büyük olan B yuvasını ve diskin geri kalanında /data veri bölümünü oluşturur. Sanal makine dosyadan ilk kez başlatılmadan önce dosyayı büyütün: base için en az 10 GiB’a, nvidia için en az 18 GiB’a. Dosyanın kazandığı alan sıfırlardan oluşur ve dosya sistemi bunu delik olarak tutar. Ham diskleri kabul eden bir hipervizör dosyayı olduğu gibi kullanır. Başka bir biçim için büyütülmüş dosyayı dönüştürün, örneğin qemu-img convert -f raw -O qcow2 device.img device.qcow2 ile.
amd64-efi ve arm64-efi görüntüleri QEMU’da başlar; Raspberry Pi görüntüsü (rpi-arm64) başlamaz. KVM’li ve ovmf paketinin UEFI firmware’ine sahip bir Linux’ta (Debian, Ubuntu) amd64-efi için:
# Dosyayı büyütün, firmware değişkenlerini kopyalayın ve makineyi başlatın
truncate -s 20G device.img
cp /usr/share/OVMF/OVMF_VARS_4M.fd device-vars.fd
qemu-system-x86_64 -machine q35 -accel kvm -cpu host -m 2048 -smp 2 \
-drive if=pflash,format=raw,unit=0,readonly=on,file=/usr/share/OVMF/OVMF_CODE_4M.fd \
-drive if=pflash,format=raw,unit=1,file=device-vars.fd \
-drive file=device.img,format=raw,if=virtio \
-netdev user,id=net0 -device virtio-net-pci,netdev=net0 \
-device i6300esb \
-nographic-nographicilk seri portu, GRUB’un ve çekirdeğin yazdığı terminale verir. Ctrl-A X QEMU’yu sonlandırır.-device i6300esbbir watchdog’dur; IronFlockOS donan bir makineyi bunun üzerinden yeniden başlatır.-netdev usersanal makineye onu çalıştıran bilgisayarın ağını verir; cihaz IronFlock’a bu ağ üzerinden erişir.- KVM olmadan (
/dev/kvmyoksa ya da bilgisayar başka bir mimarideyse)-accel kvmbayrağını çıkarın ve-cpu maxkullanın. QEMU bu durumda makineyi öykünür; bu çok daha yavaştır.
arm64-efi, qemu-system-aarch64 -machine virt ve qemu-efi-aarch64 paketinin firmware’i (/usr/share/AAVMF/AAVMF_CODE.fd ve AAVMF_VARS.fd dosyasının bir kopyası) ile, watchdog olmadan başlar. Apple silicon’lu bir Mac’te Homebrew’dan kurulan QEMU onu -accel hvf -cpu host ve /opt/homebrew/share/qemu/edk2-aarch64-code.fd firmware’i ile, edk2-arm-vars.fd dosyasının bir kopyasıyla başlatır.
Örnekler
# .flock dosyasının donanımı için varsayılan görüntüyü bir USB belleğe yazın
sudo ironflock os flash -c device.flock -d /dev/sdb
# Bir PC'ye NVIDIA görüntüsünü kuran bir yükleyici bellek yazın
sudo ironflock os flash -c device.flock -d /dev/sdb --image amd64-efi-nvidia --installer
# "Workshop" WiFi ağına katılan bir cihaz için SD kart yazın
sudo ironflock os flash -c device.flock -d /dev/mmcblk0 --wifi-ssid Workshop --wifi-password-file wifi.txt
# Bir Mac'te bellek yazın
sudo ironflock os flash -c device.flock -d /dev/disk4Sonuç
Plan ve ilerleme stderr’e gider; son satırlar sonuçtur. Linux’ta:
IronFlockOS catalog of 2026-11-10T09:41:47Z, signed with key 036ef3bd.
Image: ironflockos-amd64-efi-base 0.13.0, for x86-64 PC with UEFI
Image file: https://instance-registry.ironflock.com/dl/ironflockos/0.13.0/ironflockos-amd64-efi-base-0.13.0.img.gz (638.1 MB), downloaded and checked against the catalog
Device file: device.flock, for the device kitchen-pc
WiFi: Office (from the .flock)
Drive: /dev/sdb: SanDisk Ultra, 15.9 GB, usb, serial 4C530001230812115352
Everything on /dev/sdb is erased. Unmounted first: /media/anna/STICK.
(the progress of downloading, checking, writing, reading back)
Done: IronFlockOS 0.13.0 (ironflockos-amd64-efi-base) is on /dev/sdb and read back, with device.flock in its IRONFLOCKOS partition.
Start the device from it: it enrolls as kitchen-pc on its first boot.Bir Mac’te, önce root olmadan, sonra sudo ile:
$ ironflock os flash -c pi.flock -d /dev/disk5
Error: "ironflock os flash" must run as root (sudo) to write a drive: sudo ironflock os flash -c pi.flock -d /dev/disk5
$ sudo ironflock os flash -c pi.flock -d /dev/disk5 --yes
IronFlockOS catalog of 2026-11-10T16:41:54Z, signed with key 036ef3bd.
Image: ironflockos-rpi-arm64-base 0.14.0, for Raspberry Pi 4, 400 and CM4
Image file: https://instance-registry.ironflock.com/dl/ironflockos/0.14.0/ironflockos-rpi-arm64-base-0.14.0.img.gz (640.1 MB), downloaded and checked against the catalog
Device file: pi.flock, for the device pi-workshop
WiFi: Office (from the .flock)
Drive: /dev/disk5: Built In SDXC Reader, 15.9 GB, Secure Digital
Everything on /dev/disk5 is erased. Unmounted first: /Volumes/UNTITLED.
(the progress of downloading, checking, writing, reading back)
Done: IronFlockOS 0.14.0 (ironflockos-rpi-arm64-base) is on /dev/disk5 and read back, with pi.flock in its IRONFLOCKOS partition.
/dev/disk5 is ejected and can be taken out.
Start the device from it: it enrolls as pi-workshop on its first boot.--json ile, burada bir yükleyici bellek için (--installer --installer-confirm no --yes --json):
{"action":"flashed","device":"kitchen-pc","device_file":"device.flock","hardware":"x86-64 PC with UEFI","image":{"image_id":"ironflockos-amd64-efi-installer","version":"0.13.0","file":"ironflockos-amd64-efi-installer-0.13.0.img.gz","url":"https://instance-registry.ironflock.com/dl/ironflockos/0.13.0/ironflockos-amd64-efi-installer-0.13.0.img.gz","size":2512345678,"sha256":"..."},"installer":{"payload":"ironflockos-amd64-efi-base","disk":"largest","confirm":"no","after":"poweroff","allow_usb":"no"},"wifi":{"ssid":"Office","from":"flock"},"drive":{"device":"/dev/sdb","size":15931539456,"bus":"usb","model":"SanDisk Ultra","serial":"4C530001230812115352","internal":false},"source":"download","unmounted":["/media/anna/STICK"],"bytes":6442450944,"verified":true,"ejected":false,"files":["device.flock","installer.conf"],"catalog":{"issued_at":"2026-11-10T09:41:47Z","key_id":"036ef3bd","from_cache":false,"notes":[]},"warnings":[]}--output ile sonuçta drive yerine output bulunur, örneğin "output":{"file":"/home/anna/device.img","replaced":true}.
| Alan | Anlamı |
|---|---|
action | flashed |
device | .flock dosyasından cihazın adı. |
device_file | IRONFLOCKOS içindeki .flock dosyasının adı. |
hardware | Görüntünün hedeflediği donanım. |
image | Yazılan görüntü: image_id, version ve dosyasının file, url, size ve sha256 değerleri. url, dosyanın indirildiği ya da indirilecek olduğu yerdir. |
installer | Yalnızca yükleyici bellekte: kurduğu görüntü olan payload ile yükleyicinin uyguladığı şekliyle disk, confirm, after, allow_usb. |
wifi | ssid ve from: flock veya flags. WiFi yoksa null. |
drive | Yalnızca sürücüde: device, size, bus, model, serial ve --allow-internal ile yazılmış dahili bir disk için true olan internal. |
output | Yalnızca --output ile: mutlak yol olan file ve o adda bir dosyanın yerine yenisi yazıldığında true olan replaced. |
source | Görüntü dosyasının nereden geldiği: download, cache veya file. |
unmounted | Yazmadan önce bağlantısı kaldırılan bağlama noktaları. --output ile boştur. |
bytes, verified | Yazılan baytlar (tam bir sektöre tamamlanmış görüntü; --output ile dosyanın boyutu) ve bunların sürücüden veya dosyadan geri okunduğu. |
ejected | macOS: sürücü çıkarıldı ve çekilebilir. Linux’ta ve --output ile false. |
files | IRONFLOCKOS içine yazılan dosyalar. |
catalog | Kullanılan katalog: issued_at, key_id, from_cache ve bu ironflock sürümünün katalogdan neyi dışarıda bıraktığına dair notes. |
warnings | Planın uyarıları ve macOS’ta sürücünün çıkarılamadığı. |
Reddettiği Durumlar
Çıkış kodu 3, hiçbir şey yazılmaz:
- Sürücü,
os driveskomutunun reddettiği bir sürücüdür; hata nedenini verir ve--yesbunu değiştirmez. Tek istisna bu makinenin dahili bir diskidir:--driveonu belirttiğinde--allow-internalona yazar; bayrak sürücüyü yazılabilir yapacaksa hata da bayrağı belirtir. Bayrak başka hiçbir reddi kaldırmaz ve soruyu yanıtlamaz. - Sürücü plan ile yazma arasında değişti ya da o anda reddediliyor. Hata neyin değiştiğini söyler.
- Sürücü açıldığında kullanımdadır: planın listelemediği bir dosya sistemi bağlıdır, bir dosya sisteminin bağlantısı kaldırılamaz ya da bir program sürücüyü tutar.
- Komut root olarak (ya da macOS’ta sürücünün ham aygıtına yazma izni olan bir kullanıcı olarak) çalışmıyor. Hata komut satırını
sudoile belirtir. --outputile: ad normal bir dosya değil (bir aygıt, bir klasör, adlandırılmış bir pipe veya herhangi bir sembolik bağlantı) ya da klasörü yok; bu, herhangi bir şey okunmadan veya alınmadan önce denetlenir. Yeni dosya kabul etmeyen bir klasör (izin yok, salt okunur dosya sistemi) plandan sonra ve indirmeden önce reddedilir. Plan yeni bir dosya belirttiği hâlde görüntü yazılırken o adı alan bir dosyanın yerine yenisi yazılmaz.
Çıkış kodu 2, hatalı bir komut satırı:
- Ne
--drivene de--outputverilmiş,--allow-internalile de.--driveveya--allow-internalile birlikte, ad olmadan ya da-ile verilen--output.-cbayrağının.flockdosyasını veya--image-filedosyasını belirten bir--output. --installerolmadan ya da yükleyicinin kabul etmediği bir değerle verilen bir--installer-*bayrağı.--wifi-password-fileolmadan--wifi-ssidya da tersi.- Hangi donanım için olduğunu söylemeyen bir
.flockdosyası; bu durumda görüntüyü--imageseçer. - Kataloğun içermediği bir görüntü, görüntüyü taşımayan bir yükleyici bellek ya da yükleyici belleği olmayan bir donanım.
--hostile:--image-fileve--output, çünkü--hostgörüntü dosyasını diğer makineye kopyalamaz ve geri hiçbir dosya getirmez. Komutu burada--hostolmadan ya da makinenin kendisinde çalıştırın..flockdosyası ve parola dosyası ise gönderilir.
Çıkış kodu 4: soru hayır ile yanıtlandı (yalnızca Enter veya Esc) ya da sorulamadı ve --yes verilmedi.
Çıkış kodu 1, komut başarısız oldu:
.flockdosyası veya parola dosyası geçerli değil ya da görüntü dosyası kataloğunki değil.- Katalog,
os imageskomutunun başarısız olduğu nedenlerle kullanılamıyor. - İndirme, yazma veya geri okuma başarısız oluyor. İlk bloğundan sonra başarısız olan bir yazma (bir G/Ç hatası, görüntüden küçük bir sürücü), sürücünün artık görüntünün yalnızca bir kısmını tuttuğunu ve bundan hiçbir şeyin başlamayacağını söyler: sürücüyü yeniden yazın.
- Görüntü sürücüde ve geri okundu, ancak
.flockdosyasıIRONFLOCKOSiçine yazılamadı. Bu dosya olmadan cihaz kaydolmaz; aynı komut ikisini de yeniden yazar. --outputile: dosya sistemi dolu, cihazın dosyaları görüntüye konamıyor ya da görüntü yazılırken.partdosyasının girdisi değiştirildi. Bu durumda ad önceki hâlinde kalır.
Çıkış kodu 130: görüntü indirilirken, yazılırken veya geri okunurken Ctrl-C. Kesilen bir indirme hiçbir şey yazmamıştır ve aynı komut ona kaldığı yerden devam eder. Bir yazma veya geri okuma bir sonraki blokta durur ve hata sürücünün neyi tuttuğunu söyler. Son blok geri okunduktan sonra komut son kısa adımlarını tamamlar ve 0 ile sona erer. İkinci bir Ctrl-C komutu hemen sonlandırır; --output ile .part dosyası geride kalabilir.