How to Move Raspberry Pi Rootfs to Another Drive/partition?
by mikroskeem in Circuits > Raspberry Pi
4758 Views, 19 Favorites, 0 Comments
How to Move Raspberry Pi Rootfs to Another Drive/partition?
Hi again!
Today i show how to move Raspberry Pi rootfs to another drive/partition
You need:
- External device(min 2GB free)
- Time
- A little knowledge of (Arch) Linux
I think EXT4 burns SD card too much(SD cards have limited write/delete), so i decided to make copy of my Raspberry pi root file system and create new partition
I use Arch Linux
I reflashed my SD card and created new partition with fdisk(Pic. 1)
then i made copy of my rootfs with dd
# screen -S backup dd if=/dev/mmcblk0p2 of=/path/to/external/drive/archlinux_rootfs.img bs=1M
Then i runned this command:
# printf "p\nn\np\n3\n\n\nw\n" | fdisk /dev/mmcblkp0
I assume that you didn't change partitions after reflash. This command can brick SD card if you did
Now do reboot, because RPi reads partition table only at boot
Then format that filesystem to JFS and mount it to /mnt/jfs
# mkfs.jfs /dev/mmcblk0p3
# mount /dev/mmcblk0p3 /mnt/jfs
Now mount that external drive and rsync old rootfs to new partition
# mount /dev/(external drive) /mnt/external
# mount -o loop /mnt/external/archlinux_rootfs.img /mnt/rootfs
# screen -S sync rsync -axv /mnt/rootfs /mnt/jfs
And wait about 1-2 hrs
If done, edit /boot/cmdline.txt and change root=/dev/mmcblk0p2 to root=/dev/mmcblk0p3
and do reboot
If it booted, then you're done!
Today i show how to move Raspberry Pi rootfs to another drive/partition
You need:
- External device(min 2GB free)
- Time
- A little knowledge of (Arch) Linux
I think EXT4 burns SD card too much(SD cards have limited write/delete), so i decided to make copy of my Raspberry pi root file system and create new partition
I use Arch Linux
I reflashed my SD card and created new partition with fdisk(Pic. 1)
then i made copy of my rootfs with dd
# screen -S backup dd if=/dev/mmcblk0p2 of=/path/to/external/drive/archlinux_rootfs.img bs=1M
Then i runned this command:
# printf "p\nn\np\n3\n\n\nw\n" | fdisk /dev/mmcblkp0
I assume that you didn't change partitions after reflash. This command can brick SD card if you did
Now do reboot, because RPi reads partition table only at boot
Then format that filesystem to JFS and mount it to /mnt/jfs
# mkfs.jfs /dev/mmcblk0p3
# mount /dev/mmcblk0p3 /mnt/jfs
Now mount that external drive and rsync old rootfs to new partition
# mount /dev/(external drive) /mnt/external
# mount -o loop /mnt/external/archlinux_rootfs.img /mnt/rootfs
# screen -S sync rsync -axv /mnt/rootfs /mnt/jfs
And wait about 1-2 hrs
If done, edit /boot/cmdline.txt and change root=/dev/mmcblk0p2 to root=/dev/mmcblk0p3
and do reboot
If it booted, then you're done!