連休ということもあったひさしぶりに RaspberryPiのFreeBSDをrebuildした。
エラーがでた。
kernelのlinkのときに落ちた。
device not spaceなんたらかんたら——ああ、これはあれだ。デバイスの容量が足りないというやつだ。
で、どのデバイスが?
/tmpだろうとあたりをつけた。
/tmpはtmpfsでメモリ上にマップされているので、50Mほどしか、ない。
めずらしく正解で、うまくrebuildできたのだけれど、ふとAmazonでmicroSDカードで調べてみたら128Gが3,000円を切っていた。うそん。何がショックかって 先代のMacBook Airの内蔵ディスクが128Gだったのだ。
ということは何?
FreeBSD on RaspberryPiは128Gにできるってこと?
そう思ったらAmazonでポチってしまっていた。
そのあとに、 microSDカードの書き込み上限はモノによっては1000回程度だということを知る。
あわててtmpfsを有効にする。swapも殺しておいた方がいいかもしれない。
それにしても128Gが書き込み上限1000回だったら泣けるな。
とりあえず、FreeBSD入りの32Gを128GのmicroSDにコピる。
$ sudo dd if=/dev/mmcsd0 of=/dev/da0 bs=1m
3時間以上、かかった。4時間かもしれない。
ちゃんとbootした。
growfsをYESにしていたので自動で拡張されるか、と思ったけれど、そんなことはなかった。
$ df -h Filesystem Size Used Avail Capacity Mounted on /dev/ufs/rootfs 28G 19G 6.9G 74% / devfs 1.0K 1.0K 0B 100% /dev /dev/msdosfs/MSDOSBOOT 50M 14M 36M 28% /boot/msdos tmpfs 50M 8.0K 50M 0% /tmp $
試行錯誤とマニュアルと首っ引きで、拡張する方法を探す。
growfsコマンドでいきそうなのだけど、gpartを使う必要があるようだ。
$ gpart show => 63 250560449 mmcsd0 MBR (119G) 63 2016 - free - (1.0M) 2079 102312 1 fat32lba [active] (50M) 104391 61335609 2 freebsd (29G) 61440000 189120512 - free - (90G) => 0 61335609 mmcsd0s2 BSD (29G) 0 57 - free - (29K) 57 61335552 1 freebsd-ufs (29G) $ sudo gpart resize -i 2 mmcsd0 mmcsd0s2 resized $ gpart show => 63 250560449 mmcsd0 MBR (119G) 63 2016 - free - (1.0M) 2079 102312 1 fat32lba [active] (50M) 104391 250456121 2 freebsd (119G) => 0 250456121 mmcsd0s2 BSD (119G) 0 57 - free - (29K) 57 61335552 1 freebsd-ufs (29G) 61335609 189120512 - free - (90G) $ sudo gpart resize -i 1 mmcsd0s2 mmcsd0s2a resized $ gpart show => 63 250560449 mmcsd0 MBR (119G) 63 2016 - free - (1.0M) 2079 102312 1 fat32lba [active] (50M) 104391 250456121 2 freebsd (119G) => 0 250456121 mmcsd0s2 BSD (119G) 0 57 - free - (29K) 57 250456064 1 freebsd-ufs (119G) $ sudo growfs / Device is mounted read-write; resizing will result in temporary write suspension for /. It 's strongly recommended to make a backup before growing the file system. OK to grow filesystem on /dev/ufs/rootfs, mounted on /, from 29GB to 119GB? [yes/no] yes super-block backups (for fsck_ffs -b #) at: 61547712, 62829952, 64112192, 65394432, 66676672, 67958912, 69241152, 70523392, 71805632, 73087872, 74370112, 75652352, 76934592, 78216832, 79499072, 80781312, 82063552, 83345792, 84628032, 85910272, 87192512, 88474752, 89756992, 91039232, 92321472, 93603712, 94885952, 96168192, 97450432, 98732672, 100014912, 101297152, 102579392, 103861632, 105143872, 106426112, 107708352, 108990592, 110272832, 111555072, 112837312, 114119552, 115401792, 116684032, 117966272, 119248512, 120530752, 121812992, 123095232, 124377472, 125659712, 126941952, 128224192, 129506432, 130788672, 132070912, 133353152, 134635392, 135917632, 137199872, 138482112, 139764352, 141046592, 142328832, 143611072, 144893312, 146175552, 147457792, 148740032, 150022272, 151304512, 152586752, 153868992, 155151232, 156433472, 157715712, 158997952, 160280192, 161562432, 162844672, 164126912, 165409152, 166691392, 167973632, 169255872, 170538112, 171820352, 173102592, 174384832, 175667072, 176949312, 178231552, 179513792, 180796032, 182078272, 183360512, 184642752, 185924992, 187207232, 188489472, 189771712, 191053952, 192336192, 193618432, 194900672, 196182912, 197465152, 198747392, 200029632, 201311872, 202594112, 203876352, 205158592, 206440832, 207723072, 209005312, 210287552, 211569792, 212852032, 214134272, 215416512, 216698752, 217980992, 219263232, 220545472, 221827712, 223109952, 224392192, 225674432, 226956672, 228238912, 229521152, 230803392, 232085632, 233367872, 234650112, 235932352, 237214592, 238496832, 239779072, 241061312, 242343552, 243625792, 244908032, 246190272, 247472512, 248754752, 250036992 $ $ df -h Filesystem Size Used Avail Capacity Mounted on /dev/ufs/rootfs 116G 19G 87G 18% / devfs 1.0K 1.0K 0B 100% /dev /dev/msdosfs/MSDOSBOOT 50M 14M 36M 28% /boot/msdos tmpfs 50M 24K 50M 0% /tmp $
なんとか、なった。
そもそも128GということはBeelinkS1にインストールしてあるFreeBSDよりも大きい。
それだったらBeelinkS1にmicroSDカードをセットしてそこから使えばいいじゃん——と思ったのだけれど、どういうわけか、うちのBeelinkS1はmicroSDカードが挿しこめないのだった。なんと不良品だったのか。今さらだが。