Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| docs:guide-user:installation:installation_methods:sd_card [2021/02/15 20:07] – Explain how to resize filesystem on sdcard phoebe | docs:guide-user:installation:installation_methods:sd_card [2024/12/13 16:42] (current) – [Expanding the filesystem] fix link for correct location palebloodsky | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== SD card ====== | ====== SD card ====== | ||
| - | Installation | + | OpenWrt |
| - | FIXME //Provide an outline of the procedure here// | + | ==== Graphical Utilities ==== |
| - | ===== Prebuilt disk images ===== | + | Install [[https:// |
| + | - Download the image for your device which will be named similar to '' | ||
| + | - Select the image | ||
| + | - Select your SD card | ||
| + | - Flash the image | ||
| - | + | ==== Command Line ==== | |
| - | + | - Download the image for your device | |
| - | ==== General procedure: | + | |
| - | - Download the correct | + | |
| - Decompress it: < | - Decompress it: < | ||
| - | - Connect | + | - Connect |
| - | - Double check that you have identified your sdcard | + | - Double check you identified your SD card correctly. If the ''/ |
| - | - copy the image to the sdcard | + | - Copy the image to the SD card with: < |
| - | + | ||
| - | Examples: | + | |
| - | * [[toh: | + | |
| - | * [[toh: | + | |
| - | * [[docs: | + | |
| ==== Which image to chose? ==== | ==== Which image to chose? ==== | ||
| - | Often, different | + | Most SD card devices have multiple |
| === ext4-sdcard.img.gz === | === ext4-sdcard.img.gz === | ||
| - | * not optimized for flash memory (journaling | + | * Not optimized for flash memory (journaling |
| - | * sdcard | + | * SD card can be easily |
| - | * desktop linux standard | + | * Updates and changes can be made directly to the partition |
| - | * | + | * Linux desktop standard |
| === squashfs-sdcard.img.gz === | === squashfs-sdcard.img.gz === | ||
| - | * newer images include a hidden | + | * Compressed |
| - | * compressed | + | * Newer images include a hidden |
| - | * needs special mount procedure, to externally modify | + | * Needs special mount procedure to externally modify |
| - | * all changes are done in an overlay partition | + | * All changes are done in an overlay partition |
| + | * Due to overlay partition it is simple to reset system to defaults | ||
| - | == other images == | + | === Other images |
| * ubifs-sdcard.img.gz | * ubifs-sdcard.img.gz | ||
| - | * ... | ||
| - | == see also == | + | ==== Mounting a squashfs image locally ==== |
| + | If you insert your newly flashed SD card into a Linux computer it will be easy to mount the read only squashfs partition but it won't know about the overlay, which is not even in the partition table but instead located immediately after the squashfs filesystem in the same partition. In fact, before you've booted the SD card on your device, the overlay won't even exist. | ||
| + | |||
| + | So, first you need to make sure you've booted your image. You then need to mount the overlay as a loopback device. You can discover the offset by running '' | ||
| + | |||
| + | < | ||
| + | # Setup the loop back device. | ||
| + | # See libfstools/ | ||
| + | DEVICE= ### Set this appropriately - e.g. /dev/sda | ||
| + | PARTITION=" | ||
| + | FS_SIZE=" | ||
| + | FS_OFFSET=" | ||
| + | LOOP_DEVICE=" | ||
| + | |||
| + | # Now mount both partitions (remember, you may need to unmount any automatic mounts) | ||
| + | mkdir -p /mnt/base / | ||
| + | sudo mount " | ||
| + | sudo mount " | ||
| + | sudo mount -o noatime, | ||
| + | </ | ||
| + | |||
| + | This should leave you with a writable filesystem in / | ||
| ==== Expanding the filesystem ==== | ==== Expanding the filesystem ==== | ||
| - | To use the whole available space of your sdcard, you probably | + | |
| + | To use the whole available space of your SD card, you may have to resize your partition. | ||
| === squashfs image === | === squashfs image === | ||
| - | To resize the squashfs-image one has to know the offset of the hidden f2fs filesystem. | ||
| - | In this example, the squashfs partiton is ''/ | ||
| - | - You can find the offset, by running '' | ||
| - | - On your computer, resize the squashfs partition, for example with '' | ||
| - | - Loop mount the underlying f2fs partition (( If you are already using a loop device, you may have to use another number that loop0 )) < | ||
| - | - Run filesystem checks < | ||
| - | - Resize f2fs filesystem < | ||
| - | Now your filesystem should be recognized with the correct size. | ||
| + | First, make sure the partition is not mounted, then do something like: | ||
| + | |||
| + | < | ||
| + | DEVICE= ### Set this appropriately - e.g. /dev/sda | ||
| + | PARTITION=" | ||
| + | sudo cfdisk " | ||
| + | </ | ||
| + | |||
| + | If you've never booted the image that's all there is to it. OpenWrt will create an overlay which uses the rest of this partition on the first boot. | ||
| + | |||
| + | However, if you already booted the image OpenWrt will have created an overlay that is smaller, so you'll need to resize the filesystem. Expand the partition as above, then: | ||
| + | |||
| + | < | ||
| + | # Create a loop device pointing to the FS | ||
| + | # See libfstools/ | ||
| + | FS_SIZE=" | ||
| + | FS_OFFSET=" | ||
| + | LOOP_DEVICE=" | ||
| + | |||
| + | # Now to resize... you may need to use fsck first though. | ||
| + | sudo fsck " | ||
| + | sudo resize2fs " | ||
| + | sudo fsck " | ||
| + | </ | ||
| + | |||
| + | If you get an error from resize2fs about a bad superblock, you probably have an F2FS filesystem. Use '' | ||
| + | |||
| + | === ext4 image === | ||
| + | |||
| + | You can use '' | ||
| + | To do it online, follow the procedure described on [[http:// | ||
| + | |||
| + | Example, to resize ''/ | ||
| + | < | ||
| + | parted | ||
| + | p | ||
| + | resizepart 2 32GB | ||
| + | q | ||
| + | </ | ||
| + | Next, you may need to repair your device (perhaps say yes to all interactive queries): | ||
| + | < | ||
| + | mount -o remount,ro / #Remount root as Read Only | ||
| + | tune2fs -O^resize_inode / | ||
| + | fsck.ext4 / | ||
| + | </ | ||
| + | Now, '' | ||
| + | < | ||
| + | resize2fs / | ||
| + | </ | ||
| ===== Manual disk image assembly ===== | ===== Manual disk image assembly ===== | ||
| Line 64: | Line 126: | ||
| - Copy bootloader, kernel, rootfs (and if necessary other data) to SD card. Details devicespecific? | - Copy bootloader, kernel, rootfs (and if necessary other data) to SD card. Details devicespecific? | ||
| - Possibly resize filesystem in order to use the complete available space on the SD card | - Possibly resize filesystem in order to use the complete available space on the SD card | ||
| - | - ... | ||
| - | ===== Devices with this installation method ===== | ||
| - | ---- datatable ---- | ||
| - | cols : Brand, Model, Versions, Supported Current Rel_releasecurrent, | ||
| - | dynfilters : 1 | ||
| - | filter | ||
| - | filter | ||
| - | sort : Brand | ||
| - | limit : 25 | ||
| - | ---- | ||