Skip to content

ROCKPro64 - Anpassen resize_rootfs.sh

Angeheftet ROCKPro64
3 1 583
  • Nachdem wir nun von der PCIe NVMe SSD booten können, haben wir ein Problem, die Root Partition ist zu klein. Diese muss vergrößert werden.

    Macht das bitte erst auf einem Testsystem!!!

    rock64@rockpro64:~$ df -h  
    Filesystem      Size  Used Avail Use% Mounted on
    udev            960M     0  960M   0% /dev
    tmpfs           193M  7.7M  185M   4% /run
    /dev/nvme0n1p7  1.9G  1.1G  669M  62% /
    tmpfs           963M     0  963M   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           963M     0  963M   0% /sys/fs/cgroup
    /dev/nvme0n1p6  112M  4.0K  112M   1% /boot/efi
    tmpfs           193M     0  193M   0% /run/user/1000
    

    Kamil hat ein Script mit Namen

    resize_rootfs.sh
    

    das liegt in

    /usr/local/sbin
    

    Inhalt

    #!/bin/bash
    
    if [[ "$(id -u)" -ne "0" ]]; then
            echo "This script requires root."
            exit 1
    fi
    
    dev=$(findmnt / -n -o SOURCE)
    
    case $dev in
            /dev/mmcblk*)
                    DISK=${dev:0:12}
                    NAME="sd/emmc"
                    ;;
    
            /dev/sd*)
                    DISK=${dev:0:8}
                    NAME="hdd/ssd"
                    ;;
    
             
            *)
                    echo "Unknown disk for $dev"
                    exit 1
                    ;;
    esac
    

    Das passen wir jetzt mal für NVMe an 😉

    #!/bin/bash
    
    if [[ "$(id -u)" -ne "0" ]]; then
            echo "This script requires root."
            exit 1
    fi
    
    dev=$(findmnt / -n -o SOURCE)
    
    case $dev in
            /dev/mmcblk*)
                    DISK=${dev:0:12}
                    NAME="sd/emmc"
                    ;;
    
            /dev/sd*)
                    DISK=${dev:0:8}
                    NAME="hdd/ssd"
                    ;;
    
            /dev/nvme0n1*)
                    DISK=${dev:0:12}
                    NAME="pcie/nvme"
                    ;;
    
    
            *)
                    echo "Unknown disk for $dev"
                    exit 1
                    ;;
    esac
    
    echo "Resizing $DISK ($NAME -- $dev)..."
    
    set -xe
    
    # move GPT alternate header to end of disk
    sgdisk -e "$DISK"
    
    # resize partition 7 to as much as possible
    echo ",+,,," | sfdisk "${DISK}" -N7 --force
    
    # re-read partition table
    partprobe "$DISK"
    
    # online resize filesystem
    resize2fs "$dev"
    
    echo "Resizing $DISK ($NAME -- $dev)..."
    
    set -xe
    
    # move GPT alternate header to end of disk
    sgdisk -e "$DISK"
    
    # resize partition 7 to as much as possible
    echo ",+,,," | sfdisk "${DISK}" -N7 --force
    
    # re-read partition table
    partprobe "$DISK"
    
    # online resize filesystem
    resize2fs "$dev"
    

    Den Befehl ausführen

    rock64@rockpro64:/usr/local/sbin$ sudo ./resize_rootfs.sh 
    Resizing /dev/nvme0n1 (pcie/nvme -- /dev/nvme0n1p7)...
    + sgdisk -e /dev/nvme0n1
    Warning: The kernel is still using the old partition table.
    The new table will be used at the next reboot or after you
    run partprobe(8) or kpartx(8)
    The operation has completed successfully.
    + sfdisk /dev/nvme0n1 -N7 --force
    + echo ,+,,,
    Checking that no-one is using this disk right now ... FAILED
    
    This disk is currently in use - repartitioning is probably a bad idea.
    Umount all file systems, and swapoff all swap partitions on this disk.
    Use the --no-reread flag to suppress this check.
    
    Disk /dev/nvme0n1: 232.9 GiB, 250059350016 bytes, 488397168 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: gpt
    Disk identifier: 4252573B-53A6-4918-89A6-7802D8D8031F
    
    Old situation:
    
    Device          Start     End Sectors  Size Type
    /dev/nvme0n1p1     64    8063    8000  3.9M Linux filesystem
    /dev/nvme0n1p2   8064    8191     128   64K Linux filesystem
    /dev/nvme0n1p3   8192   16383    8192    4M Linux filesystem
    /dev/nvme0n1p4  16384   24575    8192    4M Linux filesystem
    /dev/nvme0n1p5  24576   32767    8192    4M Linux filesystem
    /dev/nvme0n1p6  32768  262143  229376  112M Microsoft basic data
    /dev/nvme0n1p7 262144 4186111 3923968  1.9G Linux filesystem
    
    /dev/nvme0n1p7: 
    New situation:
    Disklabel type: gpt
    Disk identifier: 4252573B-53A6-4918-89A6-7802D8D8031F
    
    Device          Start       End   Sectors   Size Type
    /dev/nvme0n1p1     64      8063      8000   3.9M Linux filesystem
    /dev/nvme0n1p2   8064      8191       128    64K Linux filesystem
    /dev/nvme0n1p3   8192     16383      8192     4M Linux filesystem
    /dev/nvme0n1p4  16384     24575      8192     4M Linux filesystem
    /dev/nvme0n1p5  24576     32767      8192     4M Linux filesystem
    /dev/nvme0n1p6  32768    262143    229376   112M Microsoft basic data
    /dev/nvme0n1p7 262144 488397134 488134991 232.8G Linux filesystem
    
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Device or resource busy
    The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).
    Syncing disks.
    + partprobe /dev/nvme0n1
    + resize2fs /dev/nvme0n1p7
    resize2fs 1.44.5 (15-Dec-2018)
    Filesystem at /dev/nvme0n1p7 is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 30
    The filesystem on /dev/nvme0n1p7 is now 61016873 (4k) blocks long.
    

    Vor dem Neustarten mal abwarten bis die LED der SSD aufhört zu blinken! Sicher ist sicher 🙂

    Neustarten

    rock64@rockpro64:~$ df -h
    Filesystem      Size  Used Avail Use% Mounted on
    udev            960M     0  960M   0% /dev
    tmpfs           193M  5.3M  188M   3% /run
    /dev/nvme0n1p7  230G  1.1G  219G   1% /
    tmpfs           963M     0  963M   0% /dev/shm
    tmpfs           5.0M  4.0K  5.0M   1% /run/lock
    tmpfs           963M     0  963M   0% /sys/fs/cgroup
    /dev/nvme0n1p6  112M  4.0K  112M   1% /boot/efi
    tmpfs           193M     0  193M   0% /run/user/1000
    rock64@rockpro64:~$ cd /usr/local/sbin
    

    Done. 🙂

  • Konnte Kamil davon überzeugen, das das eine gute Idee ist. Wir sind ja alle ein wenig faul 😉

  • Seit Release 0.10.10 ist das automatische Vergrößern der Root Partition mit drin 🙂

    • 0.10.10: Support automated resize when booting from nvme

    Einfach das Image auf die NVMe SSD schreiben, ab in den ROCKPro64 und fertig! Nach dem Booten wird die Partition dann automatisch auf die maximal mögliche Größe erweitert.

    Kamil hat das Script auch ein wenig angepasst.

    case $dev in
            /dev/mmcblk?p?)
                    DISK=${dev:0:12}
                    PART=${dev:13}
                    NAME="sd/emmc"
                    ;;
    
            /dev/sd??)
                    DISK=${dev:0:8}
                    PART=${dev:8}
                    NAME="hdd/ssd"
                    ;;
    
            /dev/nvme?n?p?)
                    DISK=${dev:0:12}
                    PART=${dev:13}
                    NAME="pcie/nvme"
                    ;;
    

    Das Resultat bei einer Samsung 979 EVO mit 500GB Speicher

    rock64@rockpro64:~$ df -h
       Filesystem      Size  Used Avail Use% Mounted on
       udev            918M     0  918M   0% /dev
       tmpfs           192M  5.2M  187M   3% /run
       /dev/nvme0n1p4  459G  1.2G  439G   1% /
       tmpfs           957M     0  957M   0% /dev/shm
       tmpfs           5.0M  4.0K  5.0M   1% /run/lock
       tmpfs           957M     0  957M   0% /sys/fs/cgroup
       /dev/nvme0n1p3  229M   44M  169M  21% /boot
       /dev/nvme0n1p2   12M     0   12M   0% /boot/efi
       tmpfs           192M     0  192M   0% /run/user/1000
    

    Perfekt. Danke Kamil!

  • ROCKPro64 - Kernel 5.3.0-rc4-1117 angetestet!

    ROCKPro64 rockpro64
    1
    0 Stimmen
    1 Beiträge
    422 Aufrufe
    Niemand hat geantwortet
  • Zwischenfazit April 2019

    Angeheftet ROCKPro64 rockpro64
    1
    1
    1 Stimmen
    1 Beiträge
    605 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Das erste Mal

    Angeheftet Verschoben Hardware rockpro64
    5
    2
    1 Stimmen
    5 Beiträge
    1k Aufrufe
    FrankMF
    Ich kann heute die Fragen aller Fragen beantworten Damit ist leider die Frage immer noch unbeantwortet ob WLan und PCIe zusammen nutzbar ist!! Es geht!! Ich habe von MrFixit ein Testimage der RecalBox, benutzt das selbe Debian wie oben. Die Tage konnte man im IRC verfolgen, wie man dem Grundproblem näher kam und wohl einen Fix gebastelt hat, damit beides zusammen funktioniert. Mr.Fixit hat das in RecalBox eingebaut und ich durfte testen. # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP8000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 62:03:b0:d6:dc:b3 brd ff:ff:ff:ff:ff:ff 3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP8000> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether ac:83:f3:e6:1f:b2 brd ff:ff:ff:ff:ff:ff inet 192.168.178.27/24 brd 192.168.178.255 scope global wlan0 valid_lft forever preferred_lft forever inet6 2a02:908:1262:4680:ae83:f3ff:fee6:1fb2/64 scope global dynamic valid_lft 7145sec preferred_lft 3545sec inet6 fe80::ae83:f3ff:fee6:1fb2/64 scope link valid_lft forever preferred_lft forever # ls /mnt bin etc media recalbox sd.img test2.img boot home mnt root selinux tmp crypthome lib opt run srv usr dev lost+found proc sbin sys var # fdisk BusyBox v1.27.2 (2019-02-01 22:43:19 EST) multi-call binary. Usage: fdisk [-ul] [-C CYLINDERS] [-H HEADS] [-S SECTORS] [-b SSZ] DISK Change partition table -u Start and End are in sectors (instead of cylinders) -l Show partition table for each DISK, then exit -b 2048 (for certain MO disks) use 2048-byte sectors -C CYLINDERS Set number of cylinders/heads/sectors -H HEADS Typically 255 -S SECTORS Typically 63 # fdisk -l Disk /dev/mmcblk0: 15 GB, 15931539456 bytes, 31116288 sectors 486192 cylinders, 4 heads, 16 sectors/track Units: cylinders of 64 * 512 = 32768 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/mmcblk0p1 * 2,10,9 10,50,40 32768 163839 131072 64.0M c Win95 FAT32 (LBA) Partition 1 does not end on cylinder boundary /dev/mmcblk0p2 * 16,81,2 277,102,17 262144 4456447 4194304 2048M 83 Linux Partition 2 does not end on cylinder boundary /dev/mmcblk0p3 277,102,18 1023,254,63 4456448 31115263 26658816 12.7G 83 Linux Partition 3 does not end on cylinder boundary Disk /dev/nvme0n1: 233 GB, 250059350016 bytes, 488397168 sectors 2543735 cylinders, 12 heads, 16 sectors/track Units: cylinders of 192 * 512 = 98304 bytes Device Boot StartCHS EndCHS StartLBA EndLBA Sectors Size Id Type /dev/nvme0n1p1 1,0,1 907,11,16 2048 488397167 488395120 232G 83 Linux # Oben sieht man eine funktionierende WLan-Verbindung, das LAN-Kabel war entfernt. Unten sieht man die PCIe NVMe SSD, gemountet nach /mnt und Inhaltsausgabe. Das sollte beweisen, das der Ansatz der Lösung funktioniert. Leider kann ich nicht sagen, das es zum jetzigen Zeitpunkt stabil läuft. Ich habe einfach so Reboots, kann den Fehler aktuell aber nicht fangen. Mal sehen ob ich noch was finde. Aber, es ist ein Anfang!
  • ROCKPro64 - Armbian - Go & Restic installieren!

    Verschoben Armbian armbian rockpro64
    2
    0 Stimmen
    2 Beiträge
    697 Aufrufe
    FrankMF
    Der frühe Vogel.... [image: 1545806416632-img_20181226_072626_ergebnis.jpg] Das oben geschriebene eben nochmal durchgeführt, funktioniert einwandfrei. Jetzt kann ich die USB3-Platte umbauen und den Job verlagern. Dann habe ich einen ROCKPro64 wieder frei zum Testen
  • ROCKPro64 - Ayufan's Images vs. Armbian

    ROCKPro64 armbian rockpro64
    2
    0 Stimmen
    2 Beiträge
    996 Aufrufe
    FrankMF
    Das Resize-Problem der Partition, nachdem man das System auf einer USB3-HDD installiert hat, ist in Welcome to ARMBIAN 5.67.181217 nightly Debian GNU/Linux 9 (stretch) 4.4.167-rockchip64 gefixt. Eine echte Verbesserung!
  • Video PCIe SATA Karte

    ROCKPro64 rockpro64
    1
    0 Stimmen
    1 Beiträge
    547 Aufrufe
    Niemand hat geantwortet
  • bionic-minimal-rockpro64

    Verschoben Linux rockpro64
    4
    0 Stimmen
    4 Beiträge
    1k Aufrufe
    FrankMF
    Neue Version 0.7.3 Soll gefixt sein. USB2/3 PCIe LED's LED's Weiße LED starten nach dem Booten dauerhaft OK PCIe Treiber soll drin sein, aber die 3,3V werden nicht zur Karte durchgeschaltet. Somit funktioniert PCIe nicht. Nicht OK USB2 USB-Funkadapter wird erkannt Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 1113:3163 Medion AG Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Funktastur getestet OK USB3 Angeschlossene SSD wird erkannt OK Kurzer Speed-Test. Bitte dran denken, wir haben hier noch kein optimiertes Release, sondern einen ersten Gehversuch. Da sind noch ganz viele Dinge anzupassen, was sicherlich noch Wochen, wenn nicht Monate dauert! Also, die Messergebnisse mit der nötigen Vorsicht genießen. Und dran denken, wenn @tkaiser das Ding richtig untersucht, dann haben wir auch ordentliche Meßergebnisse! Haupt-PC 2,5Zoll am USB3-Port sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync [sudo] Passwort für frank: 4096+0 Datensätze ein 4096+0 Datensätze aus 4294967296 bytes (4,3 GB, 4,0 GiB) copied, 38,171 s, **113 MB/s** ROCKPro64 Ich benutze eine SAN Disk 240GB SSD an einem Inateck USB 3.0 2,5 Zoll Adapter. Info zum USB-Adapter lsusb Bus 004 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051E SATA 6Gb/s bridge, ASM1053E SATA 6Gb/s bridge, ASM1153 SATA 3Gb/s bridge 2,5 Zoll SSD am USB2-Port sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 160.058 s, **26.8 MB/s** 2,5 Zoll SSD am USB3 Port sudo dd if=/dev/zero of=sd.img bs=1M count=4096 conv=fdatasync 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 36.2588 s, **118 MB/s** Der @tkaiser erreicht deutlich höhere Geschwindigkeiten. Bis zu 400 MB/s. Hier nachzulesen. Wenn ich so einen iozone Test mache wie der Thomas, dann erreiche ich ähnliche Werte sudo iozone -a -g 1000m -s 1000m -i 0 -i 1 -r 16384K Iozone: Performance Test of File I/O Version $Revision: 3.429 $ Compiled for 64 bit mode. Build: linux Contributors:William Norcott, Don Capps, Isom Crawford, Kirby Collins Al Slater, Scott Rhine, Mike Wisner, Ken Goss Steve Landherr, Brad Smith, Mark Kelly, Dr. Alain CYR, Randy Dunlap, Mark Montague, Dan Million, Gavin Brebner, Jean-Marc Zucconi, Jeff Blomberg, Benny Halevy, Dave Boone, Erik Habbinga, Kris Strecker, Walter Wong, Joshua Root, Fabrice Bacchella, Zhenghua Xue, Qin Li, Darren Sawyer, Vangel Bojaxhi, Ben England, Vikentsi Lapa. Run began: Sat May 26 05:16:40 2018 Auto Mode Using maximum file size of 1024000 kilobytes. File size set to 1024000 kB Record Size 16384 kB Command line used: iozone -a -g 1000m -s 1000m -i 0 -i 1 -r 16384K Output is in kBytes/sec Time Resolution = 0.000001 seconds. Processor cache size set to 1024 kBytes. Processor cache line size set to 32 bytes. File stride size set to 17 * record size. random random bkwd record stride kB reclen write rewrite read reread read write read rewrite read fwrite frewrite fread freread 1024000 16384 383912 348782 1515506 1659394 Da muss ich den Thomas nochmal was zu fragen. ?? UART2 Und zum Schluss ist mir noch aufgefallen, das die UART2 Schnittstelle jetzt funktioniert Ok, den Adapter, der morgen kommt, habe ich dann umsonst bestellt. LOL OK
  • Images 0.6.x

    Verschoben Images rockpro64
    30
    0 Stimmen
    30 Beiträge
    7k Aufrufe
    FrankMF
    0.6.60 released 0.6.60: Fix pcie/nvme/sata support for 4.4, 0.6.60: Fix spi-flash access for 4.4/mainline, Ich bin davon ausgegangen, das 0.6.x nict mehr fortgeführt wird, okay - sieht nicht so aus. Sollte released werden, ist aber aus irgendeinem Grund gestern nicht passiert (lt. Kamil)