{"id":2716,"date":"2021-06-26T14:30:33","date_gmt":"2021-06-26T05:30:33","guid":{"rendered":"https:\/\/www.ish.org\/blog\/?p=2716"},"modified":"2024-09-01T08:04:25","modified_gmt":"2024-08-31T23:04:25","slug":"ggated-ggatec","status":"publish","type":"post","link":"https:\/\/www.ish.org\/blog\/?p=2716","title":{"rendered":"ggated\/ggatec"},"content":{"rendered":"<p>FreeBSD-user-jp ML\u3067ggated\/ggatec\u304c\u4fbf\u5229\u3060\u3068\u6559\u3048\u3066\u3082\u3089\u3063\u305f\u306e\u3067\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3057\u305f\u3002<!--more--><br \/>\n\u4eca\u307e\u3067\u306fnfs\u4e0a\u3067make buildworld\u3092\u884c\u3063\u3066\u3044\u305f\u306e\u3067\u3059\u304c\u3001ggate\u3092\u4f7f\u3046\u3068\u500d\u4ee5\u4e0a\u901f\u3044\u3067\u3059\u3002\u4f46\u3057\u3001ro\u3067\u306f\u8907\u6570\u306e\u30de\u30b7\u30f3\u3067mount\u3067\u304d\u307e\u3059\u304c\u3001rw\u3067\u306f\u540c\u6642\u306b\u306f1\u53f0\u3057\u304bmount\u3067\u304d\u307e\u305b\u3093\u3002ufs\u306a\u3089\u5f53\u7136\u306e\u5236\u7d04\u3067\u3059\u304c\u3001journal file system\u3067\u8907\u6570\u30de\u30b7\u30f3\u3067\u540c\u6642\u306brw\u30de\u30a6\u30f3\u30c8\u3067\u304d\u306a\u3044\u3082\u306e\u304b\u306a\u3041\u3002\u4eca\u56de\u306f\u3001\/usr\/src\u3068\/usr\/obj\u309214-Current\u30de\u30b7\u30f3\u3067\u5171\u6709\u3059\u308b\u3053\u3068\u304c\u76ee\u7684\u3067\u3059\u3002autofs\u3067\u81ea\u52d5\u7684\u306b\u30de\u30a6\u30f3\u30c8\u3057\u307e\u3059\u304c\u3001\u4e00\u756a\u9ad8\u901f\u306a\u30de\u30b7\u30f3\u3060\u3051rw\u3067mount\u3057\u3066\u4ed6\u306e\u30de\u30b7\u30f3\u306fro\u3067\u30de\u30a6\u30f3\u30c8\u3059\u308b\u3053\u3068\u306b\u3057\u307e\u3057\u305f\u3002<\/p>\n<pre>server# gpart add -t freebsd-ufs -s 32g -l fbsrc -i 3 nvd0\r\nserver# gpart add -t freebsd-ufs -s 32g -l fbobj -i 4 nvd0\r\nserver# newfs -j \/dev\/nvd0p3\r\nserver# newfs -j \/dev\/nvd0p4\r\nserver# echo '192.168.0.0\/24   RW  \/dev\/nvd0p3' >> \/etc\/gg.gated\r\nserver# echo '192.168.0.0\/24   RW  \/dev\/nvd0p4' >> \/etc\/gg.gated\r\nserver# cat &lt;&lt;EOF >\/usr\/local\/etc\/rc.d\/ggated\r\n#!\/bin\/sh\r\n\r\n# PROVIDE: ggated\r\n# REQUIRE: LOGIN\r\n# KEYWORD: nojail shutdown\r\n\r\n. \/etc\/rc.subr\r\n\r\nname=ggated\r\ncommand=\"\/sbin\/${name}\"\r\ndesc=\"${name}\"\r\nrcvar=ggated_enable\r\n\r\nload_rc_config $name\r\n: ${ggated_enable:=NO}\r\n\r\nsig_stop=\"USR1\"\r\n\r\nload_rc_config ${name}\r\nrun_rc_command \"$1\"\r\nEOF\r\nserver# echo ggated_enable=\"YES\" >> \/etc\/rc.conf<\/pre>\n<pre>client# cat &lt;&lt;EOF >\/usr\/local\/etc\/rc.d\/ggatec\r\n#!\/bin\/sh\r\n\r\n# PROVIDE: ggatec\r\n# REQUIRE: LOGIN\r\n# KEYWORD: nojail shutdown\r\n\r\n. \/etc\/rc.subr\r\n\r\nname=ggatec\r\ncommand=\"\/sbin\/ggatec\"\r\ndesc=\"ggatec\"\r\nrcvar=ggatec_enable\r\n\r\nload_rc_config $name\r\n: ${ggatec_enable:=NO}\r\n\r\nstart_cmd=ggatec_start\r\nstop_cmd=ggatec_stop\r\n#sig_stop=\"USR1\"\r\n\r\nggatec_start() {\r\n    ${command} create -u 0 192.168.0.1 \/dev\/nvd0p3\r\n    ${command} create -u 1 192.168.0.1 \/dev\/nvd0p4\r\n}\r\n\r\nggatec_stop() {\r\n    umount \/usr\/src\r\n    umount \/usr\/obj\r\n    ${command} destroy -u 0\r\n    ${command} destroy -u 1\r\n}\r\nload_rc_config ${name}\r\nrun_rc_command \"$1\"\r\nEOF\r\nclient# echo ggatec_enable=\"YES\" >> \/etc\/rc.conf\r\nclient# cat &lt;&lt;EOF >> ~root\/.cshrc\r\nalias shutdown  \\\r\n    '\/bin\/df \/usr\/src \/usr\/obj | ' \\\r\n    '\/usr\/bin\/awk '\"'\"'\/^\\\/\/{system(\"\/sbin\/mount -u -r \"$6\";\")}'\"'\"'; ' \\\r\n    '\/sbin\/shutdown'\r\nalias reboot    \\\r\n    '\/bin\/df \/usr\/src \/usr\/obj | ' \\\r\n    '\/usr\/bin\/awk '\"'\"'\/^\\\/\/{system(\"\/sbin\/mount -u -r \"$6\";\")}'\"'\"'; ' \\\r\n    '\/sbin\/reboot'\r\nEOF\r\necho &lt;&lt;EOF >> \/etc\/fstab\r\n\/dev\/ggate0   \/usr\/src  ufs  ro,noauto  0  0   # \u4e00\u53f0\u3060\u3051ro\u3092rw\u306b\u5909\u66f4\r\n\/dev\/ggate1   \/usr\/obj  ufs  ro,noauto  0  0   # \u4e00\u53f0\u3060\u3051ro\u3092rw\u306b\u5909\u66f4\r\nEOF\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>FreeBSD-user-jp ML\u3067ggated\/ggatec\u304c\u4fbf\u5229\u3060\u3068\u6559\u3048\u3066\u3082\u3089\u3063\u305f\u306e\u3067\u8a2d\u5b9a\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-2716","post","type-post","status-publish","format-standard","hentry","category-freebsd"],"_links":{"self":[{"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2716","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2716"}],"version-history":[{"count":9,"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2716\/revisions"}],"predecessor-version":[{"id":4126,"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=\/wp\/v2\/posts\/2716\/revisions\/4126"}],"wp:attachment":[{"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2716"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2716"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ish.org\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2716"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}