Tăng bộ nhớ cho TP-LINK ARCHER C7 với USB cũ

Tăng bộ nhớ cho TP-LINK ARCHER C7 với USB cũ

Sau khi chuyển qua firware OpenWRT, thì do bộ nhớ còn lại của Archer C7 rất ít, không đủ để cài thêm các phần mềm hay ho. Vậy là mình quyết định gắn thêm USB để tăng thêm dung lượng, giúp cài thoải mái nhiều phần mềm hơn.


TỔNG QUAN

Thông thường thì OpenWrt sẽ chia bộ nhớ thành 2 phân vùng là rootfs rootfs_data. Trong đó phân vùng rootfs_data được mount vào file hệ thống là overlay
PartitionMount pointCompressionWritable
rootfs/romYesNo
rootfs_data/overlayNoYes
overlay/Unmodified filesYes
Thường thì các router sẽ có bộ nhớ rất nhỏ (chỉ vài trăm MB) cho nên hầu như chỉ đủ để cài openwrt và một vài ứng dụng đơn giản.
Trong hướng dẫn mở rộng bộ nhớ, mình tận dụng USB cũ để mount vào overlay. Trong quá trình khởi động nó sẽ được gắn vào overlay. Nếu như USB bị hỏng thì có thể gỡ bỏ mà không ảnh hướng tới overlay cũ. Và router vẫn có thể hoạt động được.

Cấu hình này sẽ không thể được sử dụng trên các thiết bị không có phân vùng /overlay trên mtd hoặc trên các ROM không có phân vùng /overlay. Trong trường hợp đầu tiên, OpenWrt sẽ không đọc cấu hình /etc/config/fstab (FS # 2231); trong phần sau trường hợp bạn có thể làm việc xung quanh nó bằng cách gắn đĩa ngoài (đĩa bổ sung) trực tiếp tới / .

BẮT ĐẦU NÀO

VIDEO HƯỚNG DẪN



CHUẨN BỊ

Router của bạn cần dư khoảng 8MB để cài các packages cần thiết. Truy cập SSH của router và dùng lệnh bên dưới để cài các gói cần thiết:

opkg update
opkg install block-mount kmod-fs-ext4 kmod-usb-storage kmod-usb-ohci kmod-usb-uhci e2fsprogs fdisk

CONFIGURING ROOTFS_DATA

Tiếp theo cài đặt /etc/config/fstab để mount rootfs_data để mount vào thư mục khác:

DEVICE="$(sed -n -e "/\s\/overlay\s.*$/s///p" /etc/mtab)"
uci -q delete fstab.rwm
uci set fstab.rwm="mount"
uci set fstab.rwm.device="${DEVICE}"
uci set fstab.rwm.target="/rwm"
uci commit fstab
Thư mục /rwm sẽ chứa overlay, được sử dụng khi khởi động. Sau đó, bạn có thể chỉnh sửa /rwm/upper/etc/config/fstab để thay đổi cấu hình ngoại vi của mình (hoặc tạm thời vô hiệu hóa nó) nếu bạn cần.


CONFIGURING EXTROOT

Kiểm tra lại các phân vùng bằng lệnh block info bạn có thể thấy nó giống thế này:

/dev/mtdblock3: UUID="93880031-a9abf263-b291d60a-b76f2528" VERSION="4.0" MOUNT="/rom" TYPE="squashfs"
/dev/mtdblock4: MOUNT="/overlay" TYPE="jffs2"
/dev/sda1: UUID="64CD-1450" VERSION="FAT32" TYPE="vfat"
Phân vùng /dev/mtdblock là bộ nhớ trong của router và /dev/sda1 là phân vùng của USB flash, gõ lệnh sau để định dạng thành ext4:
DEVICE="/dev/sda1"
mkfs.ext4 ${DEVICE}
Bây giờ config phân vùng đó thành overlay thông qua fstab UCI subsystem:

eval $(block info ${DEVICE} | grep -o -e "UUID=\S*")
uci -q delete fstab.overlay
uci set fstab.overlay="mount"
uci set fstab.overlay.uuid="${UUID}"
uci set fstab.overlay.target="/overlay"
uci commit fstab

SAO CHÉP DỮ LIỆU

Bây chuyển dữ liệu từ overlay cũ qua usb:

mkdir -p /tmp/cproot
mount --bind /overlay /tmp/cproot
mount ${DEVICE} /mnt
tar -C /tmp/cproot -cvf - . | tar -C /mnt -xf -	
umount /tmp/cproot /mnt
reboot

KIỂM TRA LẠI

VỚI GIAO DIỆN TRÊN WEB

LuCI → System → Mount Points cần hiển thị phân vùng USB mounted vào overlay. 
LuCI → System → Software sẽ hiển thị dung lượng của USB.

DÙNG DÒNG LỆNH KIỂM TRA

Phân vùng USB cần mounted /overlay. Bộ nhớ trống của / cần bằng với /overlay.

# grep -e /overlay /etc/mtab
/dev/sda1 /overlay ext4 rw,relatime,data=ordered
overlayfs:/overlay / overlay rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work
 
# df /overlay /
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              7759872    477328   7221104   6% /overlay
overlayfs:/overlay     7759872    477328   7221104   6% /

LINK THAM KHẢO

Bạn có thể thích những bài đăng này