Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Jérôme Pouiller" <jezz@sysmic.org>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 4/4] board/raspberrypi: auto-expand rootfs on first boot
Date: Thu, 27 Aug 2015 23:22 +0200	[thread overview]
Message-ID: <5881659.QqO7LoEYvS@sagittea> (raw)
In-Reply-To: <55DED20A.5030800@wsystem.com>

Hello Beno?t,

On Thursday 27 August 2015 11:02:02 Beno?t Th?baudeau wrote:
> Hi Vivien, Yann, all,
> 
> On 22/08/2015 22:01, Beno?t Th?baudeau wrote:
[...]
> So the initial contents of the unused space on the SD card seem to have an
> influence, and there seems to be a bug somewhere (Linux, resize2fs,
> genext2fs, tune2fs, or lack of call to e2fsck before calling resize2fs but
> this would not be reliable with an online partition).
> 
> Then I retried with a 16-GiB SD card on a Raspberry Pi B, and it was very
> slow too. Same if the resize is performed on a PC. However, it's very quick
> with raspi-config and the latest Raspbian image. The main difference seemed
> to be the block size (4 KiB on Raspbian vs. 1 KiB with mke2img), so I
> hacked mke2img to test with genext2fs -B 4096 and tune2fs -J size=4, but it
> did not make things faster, only the image bigger (about 512 MiB, probably
> the minimal size for 4-KiB blocks). So I don't know which ones, but it's
> probably some ext4 parameters that are having an influence on the resize2fs
> speed here. Any idea?
Yes, I have an idea :-) Did you try sparse_super?

In fact a did nearly same task a few month ago and I found same problem. For 
information, I use following script to fill disk with last partition:

diff --git 1/sdflash.sh 2/sdflash.sh
new file mode 100755
index 0000000..5f9a9d5
--- /dev/null
+++ 2/sdflash.sh
@@ -0,0 +1,48 @@
+#!/bin/bash
+#
+# Copy a disk image to sdcard card and resize last partition in order to use
+# whole disk
+#
+
+device=$1
+image=$2
+
+if [ "$device" = "" ]; then
+    echo "Usage: $0 DEVICE IMAGE"
+    echo "Example: $0 /dev/sdd images/disk.img"
+    exit 1
+fi
+
+sfdisk -R $device       || exit 1
+echo "Copying $image to $device"
+dd if=$image of=$device conv=fsync,notrunc || exit 1
+sfdisk -R $device       || exit 1
+for part in 4 3 2 1; do
+    for file in $device$part ${device}p${part}; do
+        if [ -e $file ]; then
+            ID=$(sfdisk --print-id $device $part)
+            if [[ "0x$ID" -eq 0x83 ]]; then
+                e2fsck -f $file
+                [ $? -le 1 ] || exit 1
+                tune2fs -O sparse_super -c 0 -i 0 $file
+                [ $? -eq 0 ] || exit 1
+                e2fsck -yf $file > /dev/null
+                [ $? -le 1 ] || exit 1
+                sleep 1
+                echo ',+,' | sfdisk -L -D -uM -N $part $device
+                [ $? -eq 0 ] || exit 1
+                resize2fs $file
+                [ $? -eq 0 ] || exit 1
+                e2fsck -f $file
+                [ $? -le 1 ] || exit 1
+                exit 0
+            else
+                echo "Unknown partition type"
+                exit 1
+            fi
+        fi
+    done
+done
+echo "Cannot find partition on $device"
+exit 1
+


-- 
J?r?me Pouiller, Sysmic
Embedded Linux specialist
http://www.sysmic.fr

  reply	other threads:[~2015-08-27 21:22 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-19 22:23 [Buildroot] rpi: image generation Benoît Thébaudeau
2015-08-20  7:59 ` Thomas Petazzoni
2015-08-20 14:30   ` Vivien Didelot
2015-08-22 20:01     ` [Buildroot] [PATCH 1/4] configs/raspberrypi: use EABIhf Benoît Thébaudeau
2015-08-22 20:01       ` [Buildroot] [PATCH 2/4] board/raspberrypi: prepare the image files for the target Benoît Thébaudeau
2015-10-17 11:45         ` Yann E. MORIN
2015-10-17 13:52           ` Benoît Thébaudeau
2015-08-22 20:01       ` [Buildroot] [PATCH 3/4] board/raspberrypi: generate a medium image Benoît Thébaudeau
2015-08-22 20:01       ` [Buildroot] [PATCH 4/4] board/raspberrypi: auto-expand rootfs on first boot Benoît Thébaudeau
2015-08-27  9:02         ` Benoît Thébaudeau
2015-08-27 21:22           ` Jérôme Pouiller [this message]
2015-08-28 10:36             ` Benoît Thébaudeau
2015-08-28 11:15               ` Benoît Thébaudeau
     [not found]         ` <4057940.fE2DsQZqLb@sagittea>
2015-08-31  9:11           ` Benoît Thébaudeau
2015-08-31 12:17         ` Floris Bos
2015-08-31 18:53           ` Benoît Thébaudeau
2015-08-31 13:25         ` Floris Bos
2015-08-31 19:05           ` Benoît Thébaudeau
2015-10-12 21:59       ` [Buildroot] [PATCH 1/4] configs/raspberrypi: use EABIhf Thomas Petazzoni
2015-10-12 23:17         ` Benoît Thébaudeau
2015-10-13  7:06           ` Arnout Vandecappelle
2015-10-15 20:11         ` Peter Korsgaard
2015-10-15 21:12           ` Peter Korsgaard
2015-10-25 15:19           ` [Buildroot] [PATCH] arch/arm: use EABIhf by default with VFP Benoît Thébaudeau
2015-10-25 18:53             ` Peter Korsgaard
2015-10-26  0:32               ` Thomas Petazzoni
2015-10-26  7:47                 ` Peter Korsgaard
2015-10-26  8:25                   ` Thomas Petazzoni
2015-10-26  8:51                     ` Peter Korsgaard
2015-10-25 18:55             ` Peter Korsgaard
2015-10-25 20:27               ` Benoît Thébaudeau
2015-10-25 20:40                 ` Peter Korsgaard
2015-10-25 20:52                   ` Benoît Thébaudeau
2015-10-25 21:30                     ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5881659.QqO7LoEYvS@sagittea \
    --to=jezz@sysmic.org \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox