• Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    SSD on Neuron

    UniPi Neuron Series
    2
    4
    1848
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      nerdworks. last edited by

      Hi All,

      I wonder if it is possible use the Neuron with a SSD, including booting and running the OS from the SSD?

      --

      Best Regards,
      Joran

      T 1 Reply Last reply Reply Quote 0
      • T
        tomas_hora administrators @nerdworks. last edited by

        @nerdworks. It might be possible but the SSD would have to be connected via USB which is not the best solution... If you are worried abouit the SD card lifetime, we are preparing a solution for this to the Q1/Q2 2018.

        N 1 Reply Last reply Reply Quote 0
        • N
          nerdworks. @tomas_hora last edited by

          @tomas_hora

          As long as /var is writeable I personally prefer using a USB-connected SSD instead of a SD card. Will the solution you are preparing be applicable to existing hardware? I am currently using a L513.

          --
          Joran

          1 Reply Last reply Reply Quote 0
          • N
            nerdworks. last edited by nerdworks.

            Here is what I did to get the UniPi Neuron running the UniPi Mervis OS image on a SSD connected to USB.

            Use the info below on your own risk.

            The Neuron should already be running on a SD card using the UniPi Mervis OS image.

            No additional software were added to the SD card to complete the steps below.

            All steps were done using ssh.

            Default ssh login = root:unipi

            1: Enable writing to the /boot partition

            # mount -o remount,rw /boot
            

            2: Enable Raspberry Pi 3 booting from USB connected mass storage. Please see here for more details.

            # echo 'program_usb_boot_mode=1' >> /boot/config.txt
            

            Please be aware that this command is not reversible.

            Reboot the Neuron, and log in again.

            Verify success by issuing the command:

            # vcgencmd otp_dump | grep 17:
            

            The output should read: 17:3020000a

            After reboot it is a good idea to remove the line added to /boot/config.txt above.

            This can be done using this command:

            # mount -o remount,rw /boot; sed -i '$d' /boot/config.txt
            

            3: Prepare the USB connected disk

            Make sure there is only one USB connected mass storage device connected to the Neuron.

            Identify the disk by issuing the command:

            # lsblk
            

            The output should look something like this:

            root@unipi:~# lsblk
            NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
            sda           8:0    0 111.8G  0 disk 
            |-sda2        8:2    0     1G  0 part 
            |-sda3        8:3    0     1G  0 part 
            `-sda1        8:1    0    60M  0 part 
            mmcblk0     179:0    0   7.4G  0 disk 
            |-mmcblk0p2 179:2    0     1G  0 part /
            |-mmcblk0p3 179:3    0     1G  0 part /var
            `-mmcblk0p1 179:1    0    60M  0 part /boot
            root@unipi:~#
            

            sda is the USB connected disk, and in this case it has three partitions sda1-sda3

            mmcblk0 is the SD card.

            We can also see that none of the partitions on sda is mounted.

            Wipe the disk by issuing the command:

            # wipefs -a /dev/sda
            

            The disk I used was 120 Gb. Partition sizes should be adjusted accordingly.

            Create the following partitions by using:

            fdisk -c -u /dev/sda
            

            A 150 Mb Fat32 partition set as bootable. This will become /boot
            A 58 Gb Linux partition. This will become /
            A 52 Gb Linux partition. This will become /var
            A 1.7 Gb swap partition (the rest of the disk).

            4: Format the partitions

            # mkfs -t vfat -n BOOT -F 32 /dev/sda1
            # mkfs -t ext4 /dev/sda2
            # mkfs -t ext4 /dev/sda3
            # mkswap /dev/sda4
            

            Make sure TRIM is a default mount option

            # tune2fs -o discard /dev/sda1
            # tune2fs -o discard /dev/sda2
            # tune2fs -o discard /dev/sda3
            # tune2fs -o discard /dev/sda4
            

            5: Make directories and mount the new partitions

            Create a mount point for the partition that will become /

            # mkdir /tmp/myssd
            

            Mount the partition that will become /

            # mount /dev/sda2 /tmp/myssd
            

            Create mount point for the partition that will become /boot

            # mkdir /tmp/myssd/boot
            

            Mount the partition that will become /boot

            # mount /dev/sda1 /tmp/myssd/boot
            

            Create mount point for the partition that will become /var

            # mkdir /tmp/myssd/var
            

            Mount the partition that will become /var

            # mount /dev/sda3 /tmp/myssd/var
            

            6: Copy all content on the SD card to the USB disk

            # rsync -ax —progress / /boot /var /tmp/myssd
            

            7: Chroot into the new file system to do required changes

            Enter the new file system and mount special file systems prior to chroot

            # cd /tmp/myssd/
            # mount --bind /dev dev
            # mount --bind /sys sys
            # mount --bind /proc proc
            

            Chroot into the new file system

            # chroot /tmp/myssd
            

            8: Make new ssh keys

            Remove ssh keys copied from the SD card

            # rm /etc/ssh/ssh_host_*
            

            Generate new keys

            # dpkg-reconfigure openssh-server
            

            Just ignore perl warnings.

            9: Edit /etc/fstab and /boot/cmdlline.txt to replace SD card with SSD

            # sed -i "s,/dev/mmcblk0p1,/dev/sda1,” /etc/fstab
            # sed -i "s,/dev/mmcblk0p2,/dev/sda2,” /etc/fstab
            # sed -i "s,/dev/mmcblk0p3,/dev/sda3,” /etc/fstab
            # echo '/dev/sda4  none        swap    sw        0   0' >> /etc/fstab
            # sed -i "s,root=/dev/mmcblk0p2,root=/dev/sda2,” /boot/cmdline.txt
            

            10: Exit chroot, move out of the SSD filesystems and power off the Neuron

            # exit
            # cd ~
            # poweroff
            

            11: Remove power from the Neuron and remove the SD card.

            12: Boot from SSD

            13: Remove local ssh key
            Prior to logging in to the Neuron you should remove your locally stored ssh key for the Neuron from your known_hosts file.

            14: Modify /etc/fstab to use UUID instead of partition names

            Use UUID instead of partition names in /etc/fstab. It is wise to do this modification to the fstab in case you attach another USB mass storage device to the Neuron, and what used to be /dev/sda has suddenly become /dev/sdb.

            Please see here for details about the use of UUID in /etc/fstab

            15: Have fun!

            --
            Joran

            1 Reply Last reply Reply Quote 0
            • First post
              Last post