
हम सभी जानते हैं कि
समय-समय पर यह बहुत दुर्लभ है, लगभग कभी नहीं, लेकिन एक ऐसी स्थिति उत्पन्न होती है जिसमें फ्रीबीएसडी सर्वर का एक अनिर्धारित रीसेट या पावर विफलता हाथ से fsck चलाने के लिए आग्रह की आवश्यकता के साथ डाउनलोड को रोक देती है। ऐसा होता है कि सर्वर ऊब गया है, व्यवस्थापक ने लंबे समय तक उसका दौरा नहीं किया है, और शायद एक पूर्णिमा है, लेकिन यह घटना प्रकृति में होती है। समय आ गया है, मुझे लगता है, जेडएफएस में स्थानांतरित होने के लिए - लोग सलाह देते हैं कि बीटा परीक्षण चरण एक लंबा समय बीत चुका है, डिस्क स्थान बर्बाद नहीं हुआ है, और ... जेडएफएस में फ़ाइल सिस्टम की अखंडता की जांच करने के लिए fsck उपयोगिता की आवश्यकता नहीं है! ()। मैना, विकी, लोमड़ी का अध्ययन करने के बाद, मैं इस नतीजे पर पहुंचा कि कुछ स्थानों पर जनता को पीसना, कंघी करना, लाह करना आवश्यक है। दरअसल, मानक sysinstall की तुलना में, प्रक्रिया कुछ जटिल है, लेकिन पहले से कहीं ज्यादा तेज है - 2 मिनट और ZFS पर रूट विभाजन वाला सर्वर तैयार है।
हां, निश्चित रूप से, हम अपने हाथों से उन कमांडों के पूरे समूह को नहीं चलाते हैं, जिन्हें हम चलाने की सलाह देते हैं, और हम sysinstall के साथ गड़बड़ी नहीं करते हैं, लेकिन हम एक अनअटेंडेड इंस्टॉलेशन स्क्रिप्ट बनाएंगे जिसे
Fixit मोड से लॉन्च किया जाएगा। ऐसा करने के लिए, आपको एक डीवीडी या USBstick इंस्टॉलेशन विकल्प की आवश्यकता होती है, सर्वर जहां स्क्रिप्ट संग्रहीत है (ssh के माध्यम से पहुंच योग्य)।
स्थापना की प्रक्रिया इस तरह दिखती है: बूट,
फिक्सिट मोड का चयन करें
- सीडी / डीवीडी , नेटवर्क कार्ड पर आईपी
लटकाएं और स्क्रिप्ट चलाएं:
फिक्सिट # ifconfig em0 192.168.1.100/24
Fixit # ssh user@192.168.1.1 'कैट / ऑप्ट / स्क्रिप्ट / zfs-init' | श
अब स्क्रिप्ट की सामग्री को देखते हैं, इसे निम्नलिखित करना चाहिए:
1. विभाजन को डिस्क (GPT - बूट, swap0, disk0)
2. एक ZFS पूल बनाएँ (/ रूट, / tmp, / usr, / var, / ऑप्ट) - / रूट विभाजन अलग से किया गया था, यह आकार में भी सीमित हो सकता है
3. शुरू करने के लिए कम से कम विन्यास के साथ ZFS पर एक फ्लास्क फेंक दें
शेल पर स्क्रिप्ट, एक निश्चित अनुक्रम में सिर्फ कमांड की एक सूची। स्क्रिप्ट की शुरुआत में, चर देव (डिस्क), iface (नेटवर्क कार्ड), टैंक (ZFS पूल का नाम), hostname (होस्ट नाम), tz (timezone) बदलें। यहाँ वह है:
- #! / बिन / श
- # वार
- देव = दा ०
- टैंक = टैंक
- iface = em0
- hostname = core.domain.com
- tz = "यूरोप / कीव"
- # जिपर
- gpart create -s GPT $ dev
- gpart add -s 64K -t freebsd-boot $ dev
- gpart add -s 2G -t freebsd-swap -l swap0 $ dev
- gpart add -t freebsd-zfs -l disk0 $ dev
- gpart bootcode -b / mnt2 / boot / pmbr -p / mnt2 / boot / gptzfsboot -i 1 $ dev
- sysctl kern.geom.debugflags = 0x10
- # ZFS स्थापित करें
- kldload / mnt2 / boot / कर्नेल / खुलता है
- kldload / mnt2 / boot / कर्नेल / zfs.ko
- mkdir / बूट / zfs
- # reate ZFS पूल
- zpool बनाएँ -f $ टैंक / dev / gpt / disk0
- zfs ने आरोहण किया = कोई भी टैंक नहीं
- zfs ने atime = $ टंकी को सेट किया
- zfs ने चेकसम = fletcher4 $ टैंक सेट किया
- zfs $-टैंक / रूट पर -o कम्प्रेशन = ऑफ - एक्ज़ीक्यूट = बनाते हैं
- zfs ने माउंटपॉइंट = / $ टैंक $ टैंक / रूट सेट किया
- zpool सेट बूट्स = $ टैंक / रूट $ टैंक
- zfs create -o संपीड़न = on -o exec = on -o setuid = off $ टैंक / tmp
- zfs ने माउंटपॉइंट = / $ टैंक / tmp $ टैंक / tmp सेट किया
- zfs $ टैंक / usr बनाते हैं
- zfs ने माउंटपॉइंट = / $ टैंक / usr $ टैंक / usr सेट किया
- zfs $ टैंक / var बनाते हैं
- zfs ने माउंटपॉइंट = / $ टैंक / var $ टैंक / var सेट किया
- zfs बनाएँ -o कम्प्रेशन = ऑफ -सेट सेयुड = ऑफ $ टैंक / ऑप्ट
- zfs ने माउंटपॉइंट = / $ टैंक / ऑप्ट $ टैंक / ऑप्ट का चयन किया
- सीडी / $ टैंक ; ln -s / usr / होम होम और& सीडी -
- mkdir / $ टैंक / var / tmp
- chmod 1777 / $ टैंक / var / tmp / $ टैंक / tmp
- # आधार प्रणाली स्थापित करें
- सीडी / डिस्ट / 8.2 - *
- निर्यात DESTDIR = / $ टैंक
- बेस में dir के लिए तानाशाह doc जानकारी lib32 मैनपेज को पूरा करता है; do ( cd $ dir ; इको "y" | / install.sh ) ; किया
- सीडी src; । / install.sh सब
- cd .. / गुठली; । / install.sh जेनेरिक
- सीडी / $ टैंक / बूट; सीपीपी-राल जेनरिक / * / $ टैंक / बूट / कर्नेल /
- # आधार विन्यास स्थापित करें
- बिल्ली << EOF > / $ टैंक / आदि / rconconf
- zfs_enable = "YES"
- hostname = " $ hostname "
- ifconfig_ $ iface = "DHCP"
- sshd_enable = "YES"
- ntpd_enable = "YES"
- ntpd_program = "/ usr / sbin / ntpd"
- ntpd_flags = "-p /var/run/ntpd.pid -f /var/db/ntpd.drift"
- EOF
- बिल्ली << EOF > / $ टैंक / etc / ntp.conf
- सर्वर 82.207.71.6 iburst मैक्सपॉल 9
- सर्वर 91.198.10.4 iburst मैक्सपॉल 9
- सर्वर 79.142.192.4 iburst मैक्सपॉल 9
- सर्वर 193.193.193.107 iburst मैक्सपोल 9
- EOF
- गूंज 'zfs_load = "YES" > / $ टैंक / बूट / लोडर .conf
- इको "vfs.root.mountfrom = \" zfs: $ टैंक / रूट \ " " >> / $ टैंक / बूट / लोडर .conf
- cp / mnt2 / usr / share / zoneinfo / $ tz / $ टैंक / etc / स्थानीय समय
- cp / boot / zfs / zpool.cache / $ टैंक / बूट / zfs / zpool.cache
- बिल्ली << EOF > / $ टैंक / etc / fstab
- # डिवाइस माउंटपॉइंटस्टाइप विकल्प डंप पास #
- / देव / gpt / swap0 कोई नहीं swap sw ० ०
- procfs / procfs rw 0 0
- EOF
- निर्यात LD_LIBRARY_PATH = / mnt2 / lib
- सीडी /
- # सही ZFS माउंट अंक और कोटा
- zfs अनमाउंट -ए
- zfs ने माउंटपॉइंट = / $ टैंक / ऑप्ट चुना
- zfs सेट कोटा = 1G $ टैंक / tmp && zfs सेट माउंटपॉइंट = / tmp $ टैंक / tmp
- zfs सेट कोटा = 5G $ टैंक / usr && zfs सेट माउंटपॉइंट = / usr $ टैंक / usr
- zfs सेट कोटा = 10G $ टैंक / var && zfs सेट माउंटपॉइंट = / var $ टैंक / var
- zfs सेट कोटा = 512 मीटर $ टैंक / रूट और & zfs सेट माउंट पॉइंट = विरासत $ टैंक / रूट
जब स्क्रिप्ट चल रही हो, तो आपको सर्वर को रिबूट करने के बाद कीबोर्ड को छूने की जरूरत नहीं है, और पासवर्ड के बिना रूट के रूप में लॉग इन करें।
संबंधित सामग्री:
RootOnZFS / GPTZFSBoot ,
मुख्य एक के रूप में ZFS का उपयोग करके FreeBSD को स्थापित करना ।
सौभाग्य है