How to change rootfs from official RPI3 image

Ronald Klop ronald-lists at klop.ws
Wed Aug 21 12:15:06 UTC 2019


Thanks. I will not take the credits for the idea though. :-)
The FreeBSD wiki has some more examples of similar setups:
https://wiki.freebsd.org/ZFSOnRoot describes how to do /boot on UFS and the rest on ZFS, which is similar to /boot on SD-card and the rest on SSD.
https://wiki.freebsd.org/RootOnZFS/UFSBoot

Nice that you made a write up also. More exposure for FreeBSD is always a good thing. :-)

Good luck and keep hacking.

Ronald.
 
Van: Ricky Zhang <zhangchaowang at gmail.com>
Datum: woensdag, 21 augustus 2019 13:16
Aan: Ronald Klop <ronald-lists at klop.ws>
CC: freebsd-arm at freebsd.org
Onderwerp: Re: How to change rootfs from official RPI3 image
> 
> Your idea is brilliant. It solved the dilemma. 
>  >> 
>> Ricky at router ~ $ sudo cat /etc/fstab
>> # Custom /etc/fstab for FreeBSD embedded images
>> /dev/ufs/rootfs   /bootdir       ufs     rw      1       1
>> /dev/label/gpt/ssdrootfs   /       ufs     rw      1       1
>> /dev/msdosfs/MSDOSBOOT /boot/msdos msdosfs rw,noatime 0 0
>> tmpfs /tmp tmpfs rw,mode=1777,size=50m 0 0
>>  
>> Ricky at router ~ $ mount
>> /dev/label/gpt/ssdrootfs on / (ufs, local, soft-updates)
>> devfs on /dev (devfs, local, multilabel)
>> /dev/ufs/rootfs on /bootdir (ufs, local, soft-updates)
>> /dev/msdosfs/MSDOSBOOT on /bootdir/boot/msdos (msdosfs, local, noatime)
>> tmpfs on /tmp (tmpfs, local)
> 
>  
> I wrote the whole thing down in my wiki: https://github.com/rickyzhang82/FreeBSDWiki/wiki/1.-Migrate-SD-card-rootfs-to-SSD-for-RPI3
>  
> Thanks
>  
> Ricky
>  >> 
>> On Aug 21, 2019, at 5:56 AM, Ronald Klop <ronald-lists at klop.ws> wrote:
>>  
>> Sorry, I did only reply to the mailinglist. I will use reply-all now.
>> 
>> You are right about uboot finding /boot/kernel and /boot/loader.conf.
>> 
>> What you need to do is mount the SD-card on /bootdir; in fstab:
>> /dev/yoursdcard /bootdir ufs rw,noatime 1 2
>> 
>> And a symlink from /boot -> /bootdir/boot on your SSD.
>> 
>> Then installworld/installkernel will do the proper thing.
>> So the complete /boot stays on the SD-card.
>> 
>> Regards,
>> 
>> Ronald.
>>  
>> Van: Ricky Zhang <zhangchaowang at gmail.com>
>> Datum: woensdag, 21 augustus 2019 04:58
>> Aan: freebsd-arm at freebsd.org
>> Onderwerp: Re: How to change rootfs from official RPI3 image
>>> 
>>> > BTW: Yes, u-boot is opensource: /usr/ports/sysutils/u-boot-rpi3
>>> > There are sysutils/u-boot-* ports for different system. With sysutils/u-boot-master as the main part of it.
>>> >
>>> > https://www.freshports.org/sysutils/u-boot-rpi3 <https://www.freshports.org/sysutils/u-boot-rpi3>
>>> > http://www.denx.de/wiki/U-Boot <http://www.denx.de/wiki/U-Boot>
>>> >
>>> > Regards,
>>> > Ronald.
>>> 
>>> 
>>> Hi Ronald,
>>> 
>>> Sorry, if I messed up the mailing list thread. I didn’t receive your email directly. Instead, I got your reply from daily digest. I have to copy subject and quote your reply manually in my email client. I have no idea how to fix it after reading all FAQ (https://www.freebsd.org/doc/en_US.ISO8859-1/articles/mailing-list-faq/article.html#etiquette <https://www.freebsd.org/doc/en_US.ISO8859-1/articles/mailing-list-faq/article.html#etiquette>). Any other mailing list I subscribed didn’t work this way...
>>> 
>>> In any case, the magic works. I did rsync:
>>> 
>>> rsync -aAXvr --progress --delete /* /mnt/USB \
>>>     --exclude='/boot/msdos/*' \
>>>     --exclude='/dev/*' \
>>>     --exclude='/proc/*' \
>>>     --exclude='/net/*' \
>>>     --exclude='/tmp/*' \
>>>     --exclude='/mnt/*' \
>>>     --exclude='/media/*'
>>> 
>>> I confirmed that it mount ssd as rootfs:
>>> 
>>> Ricky at router ~ $ df -h
>>> Filesystem                  Size    Used   Avail Capacity  Mounted on
>>> /dev/label/gpt/ssdrootfs    407G    5.5G    369G     1%    /
>>> devfs                       1.0K    1.0K      0B   100%    /dev
>>> /dev/msdosfs/MSDOSBOOT       50M     13M     37M    26%    /boot/msdos
>>> tmpfs                        50M    4.0K     50M     0%    /tmp
>>> 
>>> As you said, kernel still comes from SD card. I don’t fully understand the FreeBSD boot process. Neither am I familiar with UEFI.
>>> 
>>> - I guess /boot/msdos/uboot.bin finds the SD card roofs system. Load the kernel from /boot/kernel in SD card and scan /boot/loader.conf to find the rootfs. Please correct me if I’m wrong.
>>> - Should I remove /boot folder from SSD to avoid confusion?
>>> - Are there any guide how to compile and deploy kernel?
>>> 
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> freebsd-arm at freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-arm
>>> To unsubscribe, send any mail to "freebsd-arm-unsubscribe at freebsd.org"
>>> 
>>> 
>>> 
>> 
> 


More information about the freebsd-arm mailing list