Встроенные 16Мб флешки — конечно хорошо. Но с развитием OpenWRT столкнулся с пакетами и по 10 мегабайт и больше для своих нужд, конечно есть решения с загрузкой в оперативную память, но со временем оно надоедает. И так, у нас есть порт для microSD карточек, надо его использовать. К тому же в старом телефоне нашёл флешку ещё на 1 Гигабайт, значит надо её тоже использовать.
Приступим.
Для начала необходимо установить драйвер, устанавливаем:
opkg update
opkg install kmod-sdhci-mt7620
Подключаем карточку, смотрим:
kern.info kernel: [ 1690.105720] mmc0: new high speed SD card at address 0007 kern.info kernel: [ 1690.116283] mmcblk0: mmc0:0007 SD01G 954 MiB kern.info kernel: [ 1690.132559] mmcblk0: p1
Прекрасно. Теперь Открываем статью на родном сайте Extroot configuration
К слову, мы будем практически всё делать «как там», только разница в том, что «там» информация о том, как расширить систему на USB-накопитель, для SD немного не так.
Сразу пишем в терминал
ls -l /sys/block
Смотрим, что наша флешка есть и тут.
lrwxrwxrwx 1 root root 0 Nov 20 11:36 mmcblk0 -> ../devices/platform/1e130000.sdhci/mmc_host/mmc0/mmc0:0007/block/mmcblk0
Всё что нам нужно, это её название «mmcblk0»
Проверяем, что у нас есть в секции dev:
root@OpenWrt:~# ls -l /dev/mmc* brw------- 1 root root 179, 0 Nov 20 11:30 /dev/mmcblk0 brw------- 1 root root 179, 1 Nov 20 11:30 /dev/mmcblk0p1
Всё есть, приступаем дальше
Устанавливаем необходимые пакеты для форматирования и создания разделов
opkg install block-mount kmod-fs-ext4 e2fsprogs parted
Теперь пишем сие. Особо отмечу, что переменная диск задаётся из первой строки, а устройство задаётся из второй строки (добавляется «p1»). Карта размечается и форматируется:
DISK="/dev/mmcblk0" parted -s ${DISK} -- mklabel gpt mkpart extroot 2048s -2048s DEVICE="${DISK}p1" mkfs.ext4 -L extroot ${DEVICE}
Далее какие-то нужные моменты с оригинальной статьи:
eval $(block info ${DEVICE} | grep -o -e 'UUID="\S*"') eval $(block info | grep -o -e 'MOUNT="\S*/overlay"') uci -q delete fstab.extroot uci set fstab.extroot="mount" uci set fstab.extroot.uuid="${UUID}" uci set fstab.extroot.target="${MOUNT}" uci commit fstab
И ещё порция:
ORIG="$(block info | sed -n -e '/MOUNT="\S*\/overlay"/s/:\s.*$//p')" uci -q delete fstab.rwm uci set fstab.rwm="mount" uci set fstab.rwm.device="${ORIG}" uci set fstab.rwm.target="/rwm" uci commit fstab
Теперь скопируем данные в новое место:
mount ${DEVICE} /mnt tar -C ${MOUNT} -cvf - . | tar -C /mnt -xf -
Наконец-то можно перезагрузиться
reboot
Заходим в терминал, смотрим:
df -h
Видим результат:
/dev/mmcblk0p1 918.7M 4.4M 850.7M 1% /overlay
Заходим в веб-интерфейс, смотрим диспетчер пакетов:
Наслаждаемся кучей свободного места!