[Tutorial - Outdated] Odroid: - Move the filesystem to a USB Drive

Guides and tutorials for various stuff. Posted by DietPi users.
dyteso

[Tutorial - Outdated] Odroid: - Move the filesystem to a USB Drive

Post by dyteso » Tue May 03, 2016 12:31 am

Hi

Does anyone know how to move the filesystem to a USB Drive.
I'm working with ODroid-XU4 with Dietpi OS that is being display at http://odroid.com/dokuwiki/doku.php?id=en:odroid-xu4.
I saw couple of post here , one for raspberry pi, which does not work for Dietpi, I was not able to find /boot/cmdline.txt file. And another one that speed up USB device

I was able to do this on Raspberry Pi 2, but would like to try with Odroid-XU4 and USB SDD drive. I really want to speedup my read/write time.

Hope someone could help me with this task
Thanks
Jorge

User avatar
k-plan
Posts: 416
Joined: Sun Feb 28, 2016 4:28 pm

Re: Move the filesystem to a USB Drive

Post by k-plan » Thu May 05, 2016 3:59 pm

Hi Jorge,

do not own a Odroid-XU4, but make a guide for all DietPi supported ODROID device.
You can give it a try and let us know, if it will work for you.

cu
k-plan
.
Last edited by k-plan on Thu May 05, 2016 4:36 pm, edited 1 time in total.
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal and Bitcoin.

User avatar
k-plan
Posts: 416
Joined: Sun Feb 28, 2016 4:28 pm

OUTDATED: Move the filesystem to a USB Drive

Post by k-plan » Thu May 05, 2016 4:16 pm

Hi,

edit by k-plan:

This Tutorial is outdated!
You can now use DietPi-Drive Manager.
It's more simple and do all the steps for you with more options.


System:
DietPi V117 | ODROID-C1+ (e.g. in my case a fresh installation)
Micro SD-Card: - Verbatim 8GB Class 10 Micro SDHC
USB Device: - SanDisk Ultra Fit 64GB USB 3.0 drive
Boot up time: - ca. 25 sec

Note:
* should work on Hardkernel ODROID devices like: C0, C1, C1+, C2 (tested) and XU4, XU3 (tested by user)
Why to use this "extended version"?
Because it's possible to use more than only one drive attached to your device.



# Preparation

- Install some tools we’ll need later:

Code: Select all

[email protected]:~# apt-get install rsync
- Insert USB drive and check to see if usb is recognized:

Code: Select all

[email protected]:~# lsusb
Bus 001 Device 003: ID 0781:5583 SanDisk Corp.
Bus 001 Device 002: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- Locate the USB device name ( /dev/sdx ):

Code: Select all

[email protected]:~# lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    1  57.9G  0 disk
└─sda1        8:1    1  57.9G  0 part
mmcblk0     179:0    0   7.4G  0 disk
├─mmcblk0p1 179:1    0 128.5M  0 part /boot
└─mmcblk0p2 179:2    0   7.3G  0 part /
In this example, USB device is on sda. From this point on we use /dev/sda for the USB drive.


- Formatting the USB drive:

Code: Select all

[email protected]:~#  /DietPi/dietpi/dietpi-external_drive_setup

Code: Select all

--------------------------------
 D I E T - P I
 External Drive Setup
 --------------------------------
 An Existing ext4 Drive has Been Found

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        57G  584M   54G   2% /mnt/usb_1

 Would you like to format this drive? [y/N] y 

Code: Select all

--------------------------------
 D I E T - P I
 External Drive Setup
 --------------------------------
 Drive ready to be formatted to EXT4

 WARNING: This will delete all data on the USB drive


 Do you wish to Format this drive? [y/N]   y
160505-0001.gif
Dedicated Drive Completed
- Mounting USB device:

Code: Select all

[email protected]:~# mount /dev/sda1 /mnt/usb_1/
- Benchmark Filesystem and RAM IO performance

Code: Select all

[email protected]:~# dietpi-config
10 Tools => Benchmarks Filesystem and RAM benchmarks => Flash Storage, USB Drive, RAM => Benchmark IO performance.
160505-0002.gif
DietPi - Filesystem benchmarks
# Preparing to change root device (system)

- Now we need Partition unique UUID (UUID) of the USB device:

Code: Select all

[email protected]:~# lsblk -f
NAME        FSTYPE LABEL  UUID                                 MOUNTPOINT
sda
└─sda1      ext4          abe28749-d59f-415b-9b60-75b1007eeee9 /mnt/usb_1
mmcblk0
├─mmcblk0p1 vfat   BOOT   6E35-5356                            /boot
└─mmcblk0p2 ext4   rootfs e139ce78-9841-40fe-8823-96a304a09859 /
e.g. Partition unique UUID: abe28749-d59f-415b-9b60-75b1007eeee9

- Backup your boot.ini file and edit it to include your new partition:

Code: Select all

[email protected]:~# cp /DietPi/boot.ini /DietPi/boot.ini.sdcard
[email protected]:~# nano /DietPi/boot.ini
- Edit the file and change your root=UUID=... to point to new filesystem partition with the find out Partition unique UUID (UUID)

Code: Select all

# Boot Arguments
## Boot from SD-Card
## setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"

## Boot from USB device
setenv bootargs "root=UUID=abe28749-d59f-415b-9b60-75b1007eeee9 rootwait rootdelay=10 ro ${condev} no_console_suspend vdaccfg=0xa000 logo=osd1,loaded,0x7900000,720p,full dmfc=3 cvbsmode=576cvbs hdmimode=${m} m_bpp=${m_bpp} vout=${vout_mode} ${disableuhs} ${hdmi_hpd} ${hdmi_cec} ${enabledac}"
Watch for "rootdelay=10 " and save the file!

- - - - - - - -
* Examples for other ODROID devices:

* - - - C2 - - -

Code: Select all

# Boot Arguments
## Boot from SD-Card
## setenv bootargs "root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait rw ${condev} no_console_suspend hdmimode=${m} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0"

## Boot from USB device
setenv bootargs "root=UUID=abe28749-d59f-415b-9b60-75b1007eeee9 rootwait rootdelay=10 rw ${condev} no_console_suspend hdmimode=${m} m_bpp=${m_bpp} vout=${vout} fsck.repair=yes net.ifnames=0"


* - - - XU4 / XU3 (tested by user) - - -

Code: Select all

 #------------------------------------------------------------------------------------------------------
# Basic Ubuntu Setup. Don't touch unless you know what you are doing.
# --------------------------------
## Boot from SD-Card
## setenv bootrootfs "console=tty1 root=UUID=e139ce78-9841-40fe-8823-96a304a09859 rootwait ro fsck.repair=yes"

## Boot from USB device
setenv bootrootfs "console=tty1 root=UUID=abe28749-d59f-415b-9b60-75b1007eeee9 rootwait rootdelay=10 ro fsck.repair=yes" 
As well watch for “ root=UUID= ... ” and " rootdelay=10 " !
- - - - - -

- Stop the services:

Code: Select all

[email protected]:~# /DietPi/dietpi/dietpi-services stop

 DietPi-Services
 Mode: stop
 Please wait...
 Completed
- Copy the filesystem over to your new partition:

Code: Select all

[email protected]:~# rsync -axv / /mnt/usb_1/
...
sent 485,999,479 bytes  received 431,075 bytes  7,314,745.17 bytes/sec
total size is 484,388,706  speedup is 1.00
Be patient - this will take some time!

- Get your partition UUID for fstab:

Code: Select all

[email protected]:~# lsblk -f
NAME        FSTYPE LABEL  UUID                                 MOUNTPOINT
sda
└─sda1      ext4          abe28749-d59f-415b-9b60-75b1007eeee9 /mnt/usb_1
...
e.g. UUID=abe28749-d59f-415b-9b60-75b1007eeee9

- Backup and edit the fstab file on your new filesystem:

Code: Select all

[email protected]:~# cp /mnt/usb_1/etc/fstab /mnt/usb_1/etc/fstab.sdcard
[email protected]:~# nano /mnt/usb_1/etc/fstab
- Comment out the old filesystem at /dev/mmcblk0p2 and add the new line pointing to your new filesystem and add your UUID as indicated.

Code: Select all

#Internal Drives---------------------------------------------------
proc            /proc           proc    defaults                                                                        0 0
/dev/mmcblk0p1  /boot           vfat    defaults,noatime,discard                                                        0 2
## rootfs on SD-Card
### /dev/mmcblk0p2  /               ext4    defaults,noatime,discard                                                    0 1
## rootfs on USB device
/dev/disk/by-uuid/abe28749-d59f-415b-9b60-75b1007eeee9    /        ext4    defaults,noatime,nodiratime                  0 1
tmpfs                   /tmp                    tmpfs   defaults,noatime,nodev,nosuid,mode=1777                         0 0
tmpfs                   /var/log                tmpfs   defaults,size=20m,noatime,nodev,nosuid,mode=1777                0 0
tmpfs                   /DietPi                 tmpfs   defaults,size=10m,noatime,nodev,nosuid,mode=1777                0 0
- Comment out External Drives at /dev/sda1 ___ /mnt/usb_1 :

Code: Select all

#External Drives---------------------------------------------------
# - Try and use only ext4 for USB drives
# - Faster performance than NTFS, espically on RPi v1
## /dev/sda1       /mnt/usb_1      ext4    defaults,noatime,nofail                    0       0
#/dev/sda1       /mnt/usb_1      ntfs-3g    defaults,permissions,noatime,nofail       0       0
and save the file!

- Unmount your USB device:

Code: Select all

[email protected]:~# umount /dev/sda1
- Cross the fingers and reboot your ODROID: If your USB device have a activity LED, you can check here R/W activity.
Boot up time is now: ca. 20 sec

- After your device has booted up, check the filesystem information:

Code: Select all

[email protected]:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda1        57G  581M   54G   2% /
udev             10M     0   10M   0% /dev
tmpfs           190M  5.4M  185M   3% /run
tmpfs           475M     0  475M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           475M     0  475M   0% /sys/fs/cgroup
tmpfs            10M  1.1M  9.0M  11% /DietPi
tmpfs            20M   12K   20M   1% /var/log
tmpfs           475M     0  475M   0% /tmp
/dev/mmcblk0p1  129M   25M  104M  20% /boot
- Create a new swap file (e.g. 101 MB):

Code: Select all

[email protected]:~# dietpi-config
dietpi-config => 4 Advanced Options => 1 Swapfile Size
160505-0003.gif
DietPi - Advanced Options
- Now benchmark filesystem and RAM IO performance again:
160505-0004.gif
NEW - DietPi - Filesystem benchmarks
.. and reboot.


Note:
- To boot your device, you must have insert SD-Card any time. Without it will not boot.
- If somethings goes wrong or your device doesn't boot, power off your device, put SD-Card into your PC and restore "boot.ini.sdcard " to "boot.ini " on the DOS (FAT) partition named "boot "
Put edited SD-Card back into your device and power on. It will boot and run the system (DietPi) now from SD-Card like before your modifications.

------
Last edited by k-plan on Thu Sep 27, 2018 3:08 pm, edited 5 times in total.
Reason: Info Update!
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal and Bitcoin.

mike175de
Posts: 67
Joined: Sat Sep 05, 2015 3:39 pm

Re: Move the filesystem to a USB Drive

Post by mike175de » Thu May 05, 2016 8:46 pm

Hey k-plan,

thx a lot for this great tutorial! :D

Worked like a charm!

This one should get a sticky in the board.

Thx again for your time, support and sharing your knowledge. :mrgreen:

mike175de

User avatar
k-plan
Posts: 416
Joined: Sun Feb 28, 2016 4:28 pm

Re: Move the filesystem to a USB Drive

Post by k-plan » Sat May 07, 2016 5:50 pm

Hi Mike,

very nice to hear, it's working for you.

Thanks for your response.

cu
k-plan
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal and Bitcoin.

dyteso

Re: Move the filesystem to a USB Drive

Post by dyteso » Sun May 08, 2016 5:48 am

Hi k-plan

I was able to do what I needed. Great tutorial and pictures. Easy to follow. I couldn't have ask for more. Thanks a lot. You can say that UX4 has been tested successfully.

Thanks once again

Jorge

User avatar
k-plan
Posts: 416
Joined: Sun Feb 28, 2016 4:28 pm

Re: Move the filesystem to a USB Drive

Post by k-plan » Sun May 08, 2016 9:45 am

Hi dyteso,
dyteso wrote: You can say that UX4 has been tested successfully
Done! :D

Thanks for your response.

cu
k-plan
If you find our project or support useful, then we’d really appreciate it if you’d consider contributing to the project however you can.
Donating is the easiest – you can use PayPal and Bitcoin.

User avatar
johnvick
Legend
Posts: 653
Joined: Wed Jun 08, 2016 10:53 am
Location: New Zealand

Re: Move the filesystem to a USB Drive

Post by johnvick » Thu Jun 23, 2016 7:29 am

Great guide thanks - just got this going on an XU4.

korniza

Re: Move the filesystem to a USB Drive

Post by korniza » Sat Jul 30, 2016 7:58 am

I had moved my root to usb SSD before months on Odroid XU4. Today my SD died so it did not boot. How can I keep the installation on SSD and perform a new installation on a new SD? :? :? :?
Any idea? Please HELP!

User avatar
johnvick
Legend
Posts: 653
Joined: Wed Jun 08, 2016 10:53 am
Location: New Zealand

Re: Move the filesystem to a USB Drive

Post by johnvick » Sat Jul 30, 2016 8:33 pm

First are you sure the SD card has died? Have you tried to read/copy it on a Windows machine?

I would backup the SSD just in case, flash a new SD card with dietpi and use the instructions earlier in this thread to rebuild your system as it was.

Refer specifically to the sections on UUID and editing the boot.ini file.

Post Reply