follow me

CheckPoint V-80、標準機能でのUSBブート (UTM200N std/L)

UTM200N std/Lです。(アレクソンが出している Check Point V-80 のOEM品になります。

Check Point V-80のOpenWrtへの書き換えはこちらに記載。
@SRCHACK.ORG(えす・あーる・しー・はっく) CheckPoint V-80、OpenWrtに書き換える (UTM200N std/L)
Check Point V-80のブートローダの隠しメニューについてはこちらに記載。
@SRCHACK.ORG(えす・あーる・しー・はっく) CheckPoint V-80、ブートローダ (UTM200N std/L)


今回は、Check Point V-80のブートローダの隠しメニュー (b)についてです。
おそらくCheck Point V-80の基板製造元と思われる、IEI Integration Corp が作ったものなのでは?と思われるのですが、その辺について。
Welcome to Gaia Embedded Boot Menu :

        1.  Start in normal Mode
        2.  Start in debug Mode
        3.  Start in maintenance Mode
        4.  Restore to Factory Defaults (local)
        5.  Install/Update Image from Network
        6.  Restart Boot-Loader
        7.  Install/Update Image from USB
        8.  Upload preset configuration file from Network
        9.  Delete preset configuration file
        10. Change active ethernet port
        11.  Delete branding file

        Please enter your selection (press ENTER to finish) :b

        Please select interface (press enter to exit this menu)...
1. USB
2. FTP


        Please set environment variable 'bootargs' (default: console=ttyS0,115200 earlycon=uart8250,mmio32,0xf0512000):


Check Point V-80の基板製造元と云われるのは、PCBに印刷されているシルク (00EB557-00-103-RS) から云われている話ではあるのですが、
今回見つけた隠しメニューの作りから、IEI Integration Corp だろうという確信ががが


この隠しメニュー (b) から Check Point V-80 を OpenWrt導入の際に設定したuboot envの設定無しでUSBブートできるのですが、
その際に指定されているファイル名が、以下なのです。
  • Image_iei_boot_from_usb
  • v0_iei_boot_from_usb.dtb
これは、mmcblk1boot0にあるubootのバイナリから見つけたもので、該当部分が以下。
        00010203 04050607 08090A0B 0C0D0E0F  0123456789ABCDEF
11EE90  656E7465 7220746F 20657869 74207468  enter to exit th
11EEA0  6973206D 656E7529 2E2E2E00 0A312E20  is menu).....1. 
11EEB0  55534200 0A322E20 4654500A 000A0A54  USB..2. FTP....T
11EEC0  68697320 66656174 75726520 69732063  his feature is c
11EED0  75727265 6E746C79 206E6F74 20737570  urrently not sup
11EEE0  706F7274 65642E0A 00636F6E 736F6C65  ported...console
11EEF0  3D747479 53302C31 31353230 30206561  =ttyS0,115200 ea
11EF00  726C7963 6F6E3D75 61727438 3235302C  rlycon=uart8250,
11EF10  6D6D696F 33322C30 78663035 31323030  mmio32,0xf051200
11EF20  30000A0A 09506C65 61736520 73657420  0....Please set 
11EF30  656E7669 726F6E6D 656E7420 76617269  environment vari
11EF40  61626C65 2027626F 6F746172 67732700  able 'bootargs'.
11EF50  496D6167 655F6965 695F626F 6F745F66  Image_iei_boot_f
11EF60  726F6D5F 75736200 76305F69 65695F62  rom_usb.v0_iei_b
11EF70  6F6F745F 66726F6D 5F757362 2E647462  oot_from_usb.dtb
11EF80  000A0A0A 5741524E 494E473A 09094255  ....WARNING:..BU
11EF90  524E494E 47204F46 204E4557 20494D41  RNING OF NEW IMA
11EFA0  47452053 54415254 4544000A 0A0A0909  GE STARTED......
11EFB0  09504C45 41534520 444F204E 4F542050  .PLEASE DO NOT P

この機能を利用すれば、OpenWrtへの書き換え作業での uboot envを書き換えを行わなくても、任意のkernelを起動できます。
つまり、uboot envの bootcmd が書き戻されてもUSB起動が可能なのです。
eMMCに書き込まれたLinuxが起動できない状態になっても、USBからLinuxを起動すれば、uboot env(eMMC)を再度書き換えが可能なのです。
ここまでくれば解るかと思いますが、eMMCのブートローダ以外が全部消えても、ddでイメージを残しておけば、戻せるということです。

このeMMCを書き戻せるという状態ができた事で、OpenWrtへの書き換えで現状使用している 10M(kernel-1),1M(dtb-1),720M(rootfs-1) 以外のパーティションを使っても、戻したいときに戻せてしまうのです。
4GBなeMMCを搭載しているにも関わらず、720Mしかrootfsに利用できない状態を脱却でき、3.6GB程度のrootfsを手に入れる事ができる様になります。
指を加えて諦めていた領域を手に入る、水を得た魚になってしまう方は居るのでは?


とは言ってみたものの、そのままだと、広大なrootfsを使用する事はできなくて、ひと手間必要です。
その理由は、eMMCはパーティションテーブルで切られていないのです。 そのままだと、mmcblk1p1~mmcblk1p11で区切られた形で認識してしまいます。
これは、Check Point V-80は、パーティションテーブルではなく、ubootからkernelに渡される blkdevparts引数でパーティションを区切っているからなのですが、これを変更しないと使用できません。
この変更方法は、また次に紹介したい思います。



Check Point V-80なOpenWrtで広大なrootfsを入手するために、
@SRCHACK.ORG(えす・あーる・しー・はっく) CheckPoint V-80、OpenWrtで広大なrootfsを入手するために (UTM200N std/L)
CheckPoint V-80、標準機能でのUSBブート (UTM200N std/L) | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。