ZFS पर FreeBSD 8.2-RELEASE की अनअटेंडेड स्थापना

हम सभी जानते हैं कि समय-समय पर यह बहुत दुर्लभ है, लगभग कभी नहीं, लेकिन एक ऐसी स्थिति उत्पन्न होती है जिसमें फ्रीबीएसडी सर्वर का एक अनिर्धारित रीसेट या पावर विफलता हाथ से 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) बदलें। यहाँ वह है:
  1. #! / बिन / श
  2. # वार
  3. देव = दा ०
  4. टैंक = टैंक
  5. iface = em0
  6. hostname = core.domain.com
  7. tz = "यूरोप / कीव"
  8. # जिपर
  9. gpart create -s GPT $ dev
  10. gpart add -s 64K -t freebsd-boot $ dev
  11. gpart add -s 2G -t freebsd-swap -l swap0 $ dev
  12. gpart add -t freebsd-zfs -l disk0 $ dev
  13. gpart bootcode -b / mnt2 / boot / pmbr -p / mnt2 / boot / gptzfsboot -i 1 $ dev
  14. sysctl kern.geom.debugflags = 0x10
  15. # ZFS स्थापित करें
  16. kldload / mnt2 / boot / कर्नेल / खुलता है
  17. kldload / mnt2 / boot / कर्नेल / zfs.ko
  18. mkdir / बूट / zfs
  19. # reate ZFS पूल
  20. zpool बनाएँ -f $ टैंक / dev / gpt / disk0
  21. zfs ने आरोहण किया = कोई भी टैंक नहीं
  22. zfs ने atime = $ टंकी को सेट किया
  23. zfs ने चेकसम = fletcher4 $ टैंक सेट किया
  24. zfs $-टैंक / रूट पर -o कम्प्रेशन = ऑफ - एक्ज़ीक्यूट = बनाते हैं
  25. zfs ने माउंटपॉइंट = / $ टैंक $ टैंक / रूट सेट किया
  26. zpool सेट बूट्स = $ टैंक / रूट $ टैंक
  27. zfs create -o संपीड़न = on -o exec = on -o setuid = off $ टैंक / tmp
  28. zfs ने माउंटपॉइंट = / $ टैंक / tmp $ टैंक / tmp सेट किया
  29. zfs $ टैंक / usr बनाते हैं
  30. zfs ने माउंटपॉइंट = / $ टैंक / usr $ टैंक / usr सेट किया
  31. zfs $ टैंक / var बनाते हैं
  32. zfs ने माउंटपॉइंट = / $ टैंक / var $ टैंक / var सेट किया
  33. zfs बनाएँ -o कम्प्रेशन = ऑफ -सेट सेयुड = ऑफ $ टैंक / ऑप्ट
  34. zfs ने माउंटपॉइंट = / $ टैंक / ऑप्ट $ टैंक / ऑप्ट का चयन किया
  35. सीडी / $ टैंक ; ln -s / usr / होम होम और& सीडी -
  36. mkdir / $ टैंक / var / tmp
  37. chmod 1777 / $ टैंक / var / tmp / $ टैंक / tmp
  38. # आधार प्रणाली स्थापित करें
  39. सीडी / डिस्ट / 8.2 - *
  40. निर्यात DESTDIR = / $ टैंक
  41. बेस में dir के लिए तानाशाह doc जानकारी lib32 मैनपेज को पूरा करता है; do ( cd $ dir ; इको "y" | / install.sh ) ; किया
  42. सीडी src; । / install.sh सब
  43. cd .. / गुठली; । / install.sh जेनेरिक
  44. सीडी / $ टैंक / बूट; सीपीपी-राल जेनरिक / * / $ टैंक / बूट / कर्नेल /
  45. # आधार विन्यास स्थापित करें
  46. बिल्ली << EOF > / $ टैंक / आदि / rconconf
  47. zfs_enable = "YES"
  48. hostname = " $ hostname "
  49. ifconfig_ $ iface = "DHCP"
  50. sshd_enable = "YES"
  51. ntpd_enable = "YES"
  52. ntpd_program = "/ usr / sbin / ntpd"
  53. ntpd_flags = "-p /var/run/ntpd.pid -f /var/db/ntpd.drift"
  54. EOF
  55. बिल्ली << EOF > / $ टैंक / etc / ntp.conf
  56. सर्वर 82.207.71.6 iburst मैक्सपॉल 9
  57. सर्वर 91.198.10.4 iburst मैक्सपॉल 9
  58. सर्वर 79.142.192.4 iburst मैक्सपॉल 9
  59. सर्वर 193.193.193.107 iburst मैक्सपोल 9
  60. EOF
  61. गूंज 'zfs_load = "YES" > / $ टैंक / बूट / लोडर .conf
  62. इको "vfs.root.mountfrom = \" zfs: $ टैंक / रूट \ " " >> / $ टैंक / बूट / लोडर .conf
  63. cp / mnt2 / usr / share / zoneinfo / $ tz / $ टैंक / etc / स्थानीय समय
  64. cp / boot / zfs / zpool.cache / $ टैंक / बूट / zfs / zpool.cache
  65. बिल्ली << EOF > / $ टैंक / etc / fstab
  66. # डिवाइस माउंटपॉइंटस्टाइप विकल्प डंप पास #
  67. / देव / gpt / swap0 कोई नहीं swap sw
  68. procfs / procfs rw 0 0
  69. EOF
  70. निर्यात LD_LIBRARY_PATH = / mnt2 / lib
  71. सीडी /
  72. # सही ZFS माउंट अंक और कोटा
  73. zfs अनमाउंट -ए
  74. zfs ने माउंटपॉइंट = / $ टैंक / ऑप्ट चुना
  75. zfs सेट कोटा = 1G $ टैंक / tmp && zfs सेट माउंटपॉइंट = / tmp $ टैंक / tmp
  76. zfs सेट कोटा = 5G $ टैंक / usr && zfs सेट माउंटपॉइंट = / usr $ टैंक / usr
  77. zfs सेट कोटा = 10G $ टैंक / var && zfs सेट माउंटपॉइंट = / var $ टैंक / var
  78. zfs सेट कोटा = 512 मीटर $ टैंक / रूट और & zfs सेट माउंट पॉइंट = विरासत $ टैंक / रूट

जब स्क्रिप्ट चल रही हो, तो आपको सर्वर को रिबूट करने के बाद कीबोर्ड को छूने की जरूरत नहीं है, और पासवर्ड के बिना रूट के रूप में लॉग इन करें।

संबंधित सामग्री: RootOnZFS / GPTZFSBoot , मुख्य एक के रूप में ZFS का उपयोग करके FreeBSD को स्थापित करना

सौभाग्य है

Source: https://habr.com/ru/post/In124263/


All Articles