OpenWrt软路由空间扩容

预备知识

OpenWrt系统固件分类

  1. EXT4固件

    固件包名称中包含有ext4关键字,可以参考固件分类关键字示意图图片。该种类型的固件硬盘空间划分如下:

    image-20230127104021941

  2. SQUASHFS固件

    固件包名称中包含有squashfs关键字,同样参考固件分类关键字示意图图片。该种类型的固件硬盘空间划分如下:

    image-20230127104108093

固件分类关键字示意图:

image-20230127103239081

EXT4固件扩容方式

新建分区扩容

新建分区,将根目录挂载到新分区;(推荐)

在未格式化区域创建新分区,然后将原来系统文件分区的所有内容拷贝到新分区,最后将系统根目录默认挂载点变成新分区即可。

image-20230127105251868

操作步骤
  1. 查看当前磁盘信息

    fdisk -l
    

    image-20230127110105047

  2. 创建新分区

    # 注意fdisk后参数是磁盘名称,是要根据实际情况填写
    fdisk /dev/mmcblk0
    # 输入p查看分区情况
    p
    # 输入n创建新分区
    n
    # 选择p,primary分区类型
    p
    # 选择分区序号,根据实际情况填写了,一般默认即可
    # 输入分区起始位置,需要大于红色下划线数字
    # 输入要创建的分区大小,例如要创建3GB,可以输入+3G即可
    # 最后输入w写入磁盘
    

    image-20230127110647824

    image-20230127111021791

  3. 查看分区效果

    fdisk -l
    

    image-20230127111348514

  4. 格式化分区

    # mkfs.ext4后参数为新分区名称
    mkfs.ext4 /dev/mmcblk0p3
    
  5. 网页登录openwrt,选择系统挂载点,选择添加

    image-20230127111549019

  6. 选择新创建的分区,并挂载至根目录,保存后应用
    image-20230127115350975

  7. 复制根目录准备区域的命令如下

    mkdir -p /tmp/introot
    mkdir -p /tmp/extroot
    mount --bind / /tmp/introot
    # mount命令后参数为新分区,该博客中的例子为/dev/mmcblk0p3
    mount /dev/sda1 /tmp/extroot
    tar -C /tmp/introot -cvf - . | tar -C /tmp/extroot -xf -
    umount /tmp/introot
    umount /tmp/extroot
    
  8. 将上述命令在命令行中粘贴执行

  9. 若固件带有efi 关键字,需要参考EFI引导固件的额外操作章节执行额外步骤(可选:仅固件中包含efi关键字需要执行)

  10. 重启软路由

    reboot
    

直接扩容

直接将原有根分区扩容,如下图:

image-20230127105057618

操作步骤
  1. 删除旧分区(需要记住旧分区的磁盘起始位置,如图下划线位置),并创建新分区

    # 注意fdisk后参数是磁盘名称,是要根据实际情况填写
    fdisk /dev/mmcblk0
    # 删除第2个分区,输入d
    d
    # 选择第2个分区,根据实际情况填写
    2
    # 输入n创建新分区
    n
    # 选择primary分区类型
    p
    # 分区编号选择2,一般默认即可
    2
    # 输入分区起始位置,该位置要与删除分区的起始位置相同
    # 输入创建分区大小,例如+3G
    # 不要删除标识!不要删除标识!不要删除标识!选择n!
    n
    # 输入w写入磁盘
    w
    

    image-20230127113027636

    image-20230127113141262

  2. 查看分区效果

    fdisk -l
    

    image-20230127113227559

  3. 设置循环设备

    losetup /dev/loop0 /dev/mmcblk0p2
    
  4. 扩展磁盘空间

    resize2fs -f /dev/loop0
    
  5. 若固件带有efi 关键字,需要参考EFI引导固件的额外操作章节执行额外步骤(可选:仅固件中包含efi关键字需要执行)

  6. 重启软路由

    reboot
    

SQUASHFS固件扩容方式

新建分区扩容

由于SQUASHFS固件安装后,会自动创建rom空间,所以可以直接扩容即可。

直接扩容

直接扩容方式与ext4固件扩容方式相同,可以参考上述步骤。同样的,需要区分x86设备efi固件。特殊操作上文中也有提及,可以参考。

EFI引导固件的额外操作

  1. 查看分区ID

    blkid
    

    image-20230127114244639

  2. 修改系统引导

    # 编辑grub.cf文件
    vi /boot/grub/grub.cfg
    # 将下划线的两个分区ID修改成新分区的UUID即可
    

    image-20230127114608438

  3. 保存文件

    # 输入:wq即可,或者Shift + ZZ快捷键保存均可
    

参考

  1. OpenWrt的空间扩容问题,可以这么直接解决!
  • 4
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Scrapy是一个强大的Python爬虫框架,用于快速、高效地从网页中提取数据。下面是一个使用Scrapy的爬虫案例。 假设目标是从一个电子商务网站上获取商品的名称、价格和评论。首先,需要创建一个Scrapy项目。在命令行中输入以下命令: ``` scrapy startproject ecommerce ``` 会生成一个名为ecommerce的文件夹,其中包含Scrapy项目的基本结构。接下来,进入项目文件夹并创建一个爬虫: ``` cd ecommerce scrapy genspider products example.com ``` 这里创建了一个名为products的爬虫,爬取的网站是example.com。进入爬虫文件`products.py`,可以看到Scrapy自动生成的代码。在`parse`方法中,可以编写代码来提取需要的数据。 首先,需要确定要提取数据的网页结构。使用Chrome浏览器的开发者工具,可以查看网页的HTML结构。根据需要提取的数据,可以使用XPath或CSS选择器来定位元素。比如,要提取商品的名称和价格,可以使用以下代码: ``` def parse(self, response): products = response.xpath('//div[@class="product"]') for product in products: name = product.xpath('.//h2/text()').get() price = product.xpath('.//span[@class="price"]/text()').get() yield { 'name': name, 'price': price } ``` 这个代码会在网页中查找所有`class`属性为`product`的`div`元素,并提取每个商品的名称和价格。 接下来,需要配置爬虫的URL和启动设置。在项目文件夹中的`settings.py`文件中,可以设置爬虫的起始URL和其他的配置参数。 最后,运行爬虫并保存数据。在命令行中输入以下命令: ``` scrapy crawl products -o data.json ``` 这个命令会运行名为products的爬虫,并将提取的数据保存在data.json文件中。 以上就是一个使用Scrapy爬虫框架的简单案例。通过编写适当的代码,可以根据需要从网页中提取所需的数据。Scrapy提供了丰富的功能和灵活的配置选项,使得爬虫开发变得更加容易和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值