بغیر نگرانی انسٹالز¶
OmarOS ISO کی بورڈ پر کوئی موجود نہ ہوتے ہوئے خود کو انسٹال کر سکتا ہے۔ اگر انسٹالر کو cidata لیبل والی دوسری ڈرائیو ملتی ہے جس میں اس کی کنفگریشن فائلیں ہوں تو یہ انہیں اتار لیتا ہے، سیٹ اپ وزرڈ کو مکمل طور پر چھوڑ دیتا ہے، اور خود بخود تیار نظام میں ری بوٹ کر جاتا ہے۔ کوئی خاص ISO بلڈ نہیں، کوئی اضافی بوٹ مینیو اندراج نہیں — کوئی ایسی ڈرائیو نہ لگی ہو تو کچھ نہیں بدلتا اور آپ کو معمول کا وزرڈ ملتا ہے۔
یہ OmarOS کو عارضی ڈویلپمنٹ ماحولوں کے لیے ایک بہترین بنیادی تصویر بنا دیتا ہے: Proxmox میں یا Packer کے ساتھ ایک VM بنائیں، اسے بوٹ کریں، چلے جائیں، SSH سے اندر آ جائیں۔ cidata cloud-init NoCloud لیبل ہے، لہٰذا تمام عام ورچوئلائزیشن ٹولنگ پہلے ہی جانتی ہے کہ ایسی ڈرائیو کیسے لگانی ہے۔
کنفگریشن فائلیں¶
فائلیں بالکل وہی ہیں جو انسٹالر کا اپنا وزرڈ لکھتا ہے، لہٰذا ابتدائی سیٹ حاصل کرنے کا سب سے آسان طریقہ ایک باہمی انسٹال چلانا ہے (کہیں VM میں) اور جو اس نے /root میں لکھا اسے کاپی کرنا ہے:
| فائل | درکار | مقصد |
|---|---|---|
user_configuration.json |
ہاں | ڈسک، ہوسٹ نام، ٹائم زون، کی بورڈ |
user_credentials.json |
ہاں | صارف نام اور پاس ورڈ ہیش |
user_full_name.txt |
نہیں | Git مکمل نام |
user_email_address.txt |
نہیں | Git ای میل |
user_encrypt_installation.txt |
نہیں | true جب کنفگریشن میں disk_encryption بلاک ہو |
authorized_keys |
نہیں | SSH عوامی کلیدیں، فی سطر ایک |
tailscale_authkey |
نہیں | پہلے بوٹ پر آپ کے ٹیل نیٹ میں شامل ہونے کے لیے Tailscale منظوری کلید |
user_credentials.json کے لیے پاس ورڈ ہیش openssl passwd -6 "yourpassword" سے بنائیں۔
آپ user_credentials.json کی جگہ defer-provisioning نامی خالی فائل بھی ڈال سکتے ہیں۔ یہ وہی دوسرے مالک کے لیے تیار کریں انسٹال چلاتا ہے جسے آپ باہمی طور پر چلا سکتے ہیں: مشین بغیر ذاتی تفصیلات کے انسٹال ہوتی ہے، اور جو اسے پہلے بوٹ کرے وہ اپنا کی بورڈ چنتا ہے اور اپنا صارف بناتا ہے۔ یہ امیجنگ رگس کے لیے انداز ہے، جہاں ڈرائیو پر کسی کی اسناد بالکل نہیں ہونی چاہئیں۔
SSH رسائی¶
جب authorized_keys موجود ہو تو انسٹال کلیدوں کو صارف کے ~/.ssh/authorized_keys کے طور پر لگاتا ہے، sshd فعال کرتا ہے، اور اس کے لیے فائر وال کھولتا ہے۔ (معیاری OmarOS انسٹال openssh سروس غیر فعال اور پورٹ بند کے ساتھ آتی ہے، لہٰذا بغیر نگرانی مشین بصورت دیگر ناقابل رسائی ہوتی۔) انسٹال صرف آپ کی کلیدیں شامل کرتا ہے — یہ SSH ڈیمون کی دیگر تصدیق ترتیبات میں سے کسی کو ڈھیلا نہیں کرتا۔
جب tailscale_authkey موجود ہو تو مشین اس کے بجائے پہلے بوٹ پر آپ کے ٹیل نیٹ میں شامل ہو جاتی ہے: Tailscale ISO کے بنڈل شدہ پیکیجز سے انسٹال ہوتی ہے، فائر وال ٹیل نیٹ انٹرفیس کی اجازت دیتی ہے، اور ایک پس منظری کام مشین کے واقعی نیٹ ورک حاصل کرتے ہی شمولیت چلاتا ہے، کامیاب ہونے تک دوبارہ کوشش کرتے ہوئے۔ ایک دوبارہ قابل استعمال، پہلے سے منظور شدہ کلید استعمال کریں تاکہ ایک ڈرائیو تصویر کئی مشینوں کی خدمت کر سکے۔
cidata ڈرائیو بنانا¶
درست لیبل والا کوئی بھی فائل سسٹم کام کرتا ہے۔ ایک چھوٹی ISO آسان راستہ ہے:
mkdir cidata
cp user_configuration.json user_credentials.json authorized_keys cidata/
genisoimage -output cidata.iso -volid cidata -joliet -rock cidata/
پھر اسے OmarOS ISO کے ساتھ ساتھ VM سے لگا دیں۔ یہاں ایک مکمل Proxmox مثال ہے:
qm create 101 --name my-omaros \
--bios ovmf --machine q35 --cpu host --cores 4 --memory 8192 \
--ostype l26 --scsihw virtio-scsi-single \
--efidisk0 local-lvm:0,efitype=4m,pre-enrolled-keys=0 \
--scsi0 local-lvm:40,discard=on,iothread=1 \
--net0 virtio,bridge=vmbr0 --vga virtio --serial0 socket \
--ide2 local:iso/omaros.iso,media=cdrom \
--ide3 local:iso/cidata.iso,media=cdrom \
--boot order='scsi0;ide2'
qm start 101
بوٹ ترتیب جان بوجھ کر ڈسک کو پہلے درج کرتی ہے: خالی ڈسک پہلے بوٹ پر ISO پر گر جاتی ہے، اور انسٹال شدہ نظام اس کے بعد ہمیشہ ڈسک سے بوٹ ہوتا ہے۔
دو تنبیہات¶
خفیہ شدہ بغیر نگرانی انسٹالز مکمل طور پر بغیر نگرانی نہیں ہیں — کسی کو پھر بھی پہلے بوٹ پر LUKS پاس فریز لکھنا ہوتا ہے۔ اور user_configuration.json میں disk_encryption بلاک وہ پاس فریز سادہ متن میں رکھتا ہے، لہٰذا خفیہ شدہ انسٹال سے بنی cidata ڈرائیو کو اس راز کی طرح سمجھیں جو یہ ہے۔