Skip to content

ROCKPro64 - Anpassen resize_rootfs.sh

Angeheftet ROCKPro64
  • 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!

  • Mainline 5.12.x

    Images
    2
    0 Stimmen
    2 Beiträge
    306 Aufrufe
    FrankMF

    5.12.0-1149-ayufan released

    ayufan: defconfig: add MT76x* drivers
  • Mainline 5.4.x

    Images
    2
    0 Stimmen
    2 Beiträge
    348 Aufrufe
    FrankMF

    Bootet bei mir weder von USB3-SSD noch von SD-Karte.

    USB3-SSD -> https://pastebin.com/QAS92sme
    SD-Karte -> https://pastebin.com/Bsr3WLJ7

  • ROCKPro64 - Reset & Power Taster (extern)

    Hardware
    1
    0 Stimmen
    1 Beiträge
    649 Aufrufe
    Niemand hat geantwortet
  • Neue Artikel im Pine64 Shop (August 2018)

    Hardware
    2
    0 Stimmen
    2 Beiträge
    736 Aufrufe
    FrankMF

    Neue Artikel im Pine64 Shop

    ABS Gehäuse https://www.pine64.org/?product=rockpro64-abs-enclosure Gehäuse für einen ROCKPro64 und einen LCD-Bildschirm https://www.pine64.org/?product=rockpro64-playbox-enclosure
  • USB 3.0 - SATA Adapter

    Hardware
    2
    0 Stimmen
    2 Beiträge
    751 Aufrufe
    FrankMF

    Heute das Ganze mal mit einer Samsung 860 Pro mit 256GB. Eingesetztes Filesystem ext4

    rock64@rockpro64v2_1:/mnt$ uname -a Linux rockpro64v2_1 4.4.132-1077-rockchip-ayufan-gbaf35a9343cb #1 SMP Mon Jul 30 14:06:57 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux Speedtest rock64@rockpro64v2_1:/mnt$ sudo iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 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: Tue Jul 31 14:27:17 2018 Include fsync in write timing O_DIRECT feature enabled Auto Mode File size set to 102400 kB Record Size 4 kB Record Size 16 kB Record Size 512 kB Record Size 1024 kB Record Size 16384 kB Command line used: iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 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 102400 4 17896 23350 30390 31362 21611 14611 102400 16 56756 59180 86296 93819 51778 57327 102400 512 201347 221961 220840 222338 210887 230781 102400 1024 253752 273695 263884 266256 250153 273528 102400 16384 351112 356007 366417 372264 368721 356177 iozone test complete. DD Schreiben rock64@rockpro64v2_1:/mnt$ 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, 12.8358 s, 335 MB/s Lesen rock64@rockpro64v2_1:/mnt$ sudo dd if=sd.img of=/dev/null bs=1M count=4096 4096+0 records in 4096+0 records out 4294967296 bytes (4.3 GB, 4.0 GiB) copied, 11.4787 s, 374 MB/s Fazit

    Damit scheint der Adapter ganz gut am USB3.0 zu funktionieren. Die Schreibgeschwindigkeit ist ca. dreimal höher als mit der anderen SSD. 😉

  • 0.6.59 released

    Verschoben Archiv
    1
    0 Stimmen
    1 Beiträge
    539 Aufrufe
    Niemand hat geantwortet
  • ROCKPro64 - Der Bootvorgang

    Verschoben Hardware
    3
    0 Stimmen
    3 Beiträge
    2k Aufrufe
    FrankMF

    Um einen neuen Kernel booten zu können, brauche ich diese 4 Dateien unter /boot

    config-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 System.map-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06

    Und den Ordner /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 mit folgendem Inhalt

    rock64@rockpro64v2_0:/boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06$ ls -la total 104 drwxr-xr-x 26 root root 4096 Sep 30 09:54 . drwxr-xr-x 6 root root 4096 Sep 30 09:55 .. drwxr-xr-x 2 root root 4096 Sep 30 09:54 al drwxr-xr-x 2 root root 4096 Sep 30 09:54 allwinner drwxr-xr-x 2 root root 4096 Sep 30 09:54 altera drwxr-xr-x 2 root root 4096 Sep 30 09:54 amd drwxr-xr-x 2 root root 4096 Sep 30 09:54 amlogic drwxr-xr-x 2 root root 4096 Sep 30 09:54 apm drwxr-xr-x 2 root root 4096 Sep 30 09:54 arm drwxr-xr-x 4 root root 4096 Sep 30 09:54 broadcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 cavium drwxr-xr-x 2 root root 4096 Sep 30 09:54 exynos drwxr-xr-x 2 root root 4096 Sep 30 09:54 freescale drwxr-xr-x 2 root root 4096 Sep 30 09:54 hisilicon drwxr-xr-x 2 root root 4096 Sep 30 09:54 lg drwxr-xr-x 2 root root 4096 Sep 30 09:54 marvell drwxr-xr-x 2 root root 4096 Sep 30 09:54 mediatek drwxr-xr-x 2 root root 4096 Sep 30 09:54 nvidia drwxr-xr-x 2 root root 4096 Sep 30 09:54 qcom drwxr-xr-x 2 root root 4096 Sep 30 09:54 renesas drwxr-xr-x 2 root root 4096 Sep 30 09:54 rockchip drwxr-xr-x 2 root root 4096 Sep 30 09:54 socionext drwxr-xr-x 2 root root 4096 Sep 30 09:54 sprd drwxr-xr-x 2 root root 4096 Sep 30 09:54 synaptics drwxr-xr-x 2 root root 4096 Sep 30 09:54 xilinx drwxr-xr-x 2 root root 4096 Sep 30 09:54 zte

    Unter /boot/extlinux liegt dann die Datei extlinux.conf

    Die sieht bei mir dann so aus

    timeout 10 menu title select kernel label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=TEST rootwait rootfstype=ext4 label kernel-4.19.0-rc4-1065-ayufan-g72e04c7b3e06-memtest kernel /boot/vmlinuz-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 initrd /boot/initrd.img-4.19.0-rc4-1065-ayufan-g72e04c7b3e06 devicetreedir /boot/dtbs/4.19.0-rc4-1065-ayufan-g72e04c7b3e06 append rw panic=10 init=/sbin/init coherent_pool=1M ethaddr=${ethaddr} eth1addr=${eth1addr} serial=${serial#} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1 root=LABEL=TEST rootwait rootfstype=ext4 memtest

    Darunter kommen dann evt. die alten Kernel die installiert waren, das habe ich hier im Beispiel weg gelassen.

  • Images 0.6.x

    Verschoben Images
    30
    0 Stimmen
    30 Beiträge
    6k 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)