|
用外置磁盘替换FLASH可写分区
第一步: 将/overlay内容都复制到外置磁盘上
这里hoowa的外置磁盘上根分区设备符号为/dev/sda2(记住上面讲的,要看你自己的设备符号是什么,不能直接抄hoowa的举例sda2)。
创建和挂载外部磁盘的文件分区:
root@SmartRouter:/# mkdir /mnt/extdisk
root@SmartRouter:/# mount /dev/sda2 /mnt/extdisk
复制文件:
root@SmartRouter:/# tar -C /overlay -cvf - . | tar -C /mnt/extdisk -xf -
root@SmartRouter:/# sync
卸载外部磁盘:
root@SmartRouter:/# umount /mnt/extdisk
第二步: 读取出外置磁盘的UUID编号
使用磁盘设备符号挂载太危险了,因为它可能变化,这次是/dev/sda下次你随便接入个其他什么设备可能变成/dev/sdb了,这怎么得了啊。
我们要用UUID了,UUID编号的作用就像身份证,不论磁盘的设备符号怎么变化,UUID是不改变的(如果改变了跟顺序没关系,可能是分区本身有变化了)。
先读出UUID我们下一步要使用:
每个分区的UUID都不同,这里我们记住/dev/sda2的,因为这个是我们要准备做可写分区的部分。在hoowa的这个硬盘上它是"0af3648e-a204-4e8d-b6a1-31cb6e8ce3ed",每台机器不一样,这玩意不能直接抄啊。
第三步: 设置系统启动自动挂载外部磁盘
现在我们写的文件还是FLASH可写分区。/etc/config/fstab配置文件是挂载记录(现在还是修改FLASH可写分区的,只有这么修改才能实现转换,记得10.2咋讲的不)。
文件结构:
#自动挂载部分
config global automount
......
#自动交换区挂载
config global autoswap
......
#静态挂载(匿名段配置,可以有多个相同的)
config mount
......
fstab配置config global automount段 可选参数:
键 值 必须设置 说明
from_fstab 1 是 在hotplug执行的时候挂载,值为1表示打开,可选参数: 0 禁用,1 启用
anon_mount 0 是 当hotplug执行到挂载的时候,自动挂载匿名(无config mount配置)的磁盘到/mnt/下。可选参数: 0 禁用,1 启用
fstab配置global autoswap段 可选参数:
键 值 必须设置 说明
from_fstab 1 是 在hotplug执行的时候挂载,值为1表示打开,可选参数: 0 禁用,1 启用
anon_swap 1 是 自动挂载任何一个外置磁盘上的交换区,可选参数: 0 禁用,1 启用
fstab配置config mount段 该段为匿名段可重复存在,可选参数:
键 值 必须设置 说明
target 字符串 是 被挂载的位置
device 字符串 否 被挂载的设备符号,如果采用uuid方式挂载可以不配置,可选参数通过fdisk -l查看具体要挂载设备符号
uuid 字符串 否 被挂载的设备UUID号,不能跟device一起使用。
fstype 字符串 是 分区文件系统类型,可选参数: ext4 / ext3 / fat32
options 字符串 否 挂载时候所使用的参数,如果是ext3 / ext4 可以填写: rw,sync 表示同步允许读写,如果是只读修改为ro,sync
enabled 数值 是 是否启用,可选参数: 0 禁用,1 启用
enabled_fsck 数值 是 是否在挂载的时候检测文件系统是否异常,可选参数: 0 禁用,1 启用
举例:使用UCI直接修改/etc/config/fstab配置文件
清理掉fstab旧配置:
root@SmartRouter:/# echo > /etc/config/fstab
root@SmartRouter:/# uci set fstab.automount=global
root@SmartRouter:/# uci set fstab.automount.from_fstab=1
root@SmartRouter:/# uci set fstab.automount.anon_mount=0
root@SmartRouter:/# uci set fstab.autoswap=global
root@SmartRouter:/# uci set fstab.autoswap.from_fstab=1
root@SmartRouter:/# uci set fstab.autoswap.anon_swap=1
root@SmartRouter:/# uci add fstab mount
cfg044d78
上面这个cfg044d78是hoowa这台机器在创建mount时候产生的唯一值,因为mount是属于匿名段(还记得之前章节里介绍过UCI部分的匿名段吗)。也就是说后续的增加参数操作使用这个cfg044d78代表当前mount操作就行,请注意啊各位,这个cfg开头的名字在每台机器上都不一样各位不要直接抄这部分的指令啊,要变通修改为自己的啊。
UUID填写刚才blkid取到的那个UUID,其他参考这个设置:
root@SmartRouter:/etc/config# uci set fstab.cfg044d78.uuid=0af3648e-a204-4e8d-b6a1-31cb6e8ce3ed
root@SmartRouter:/etc/config# uci set fstab.cfg044d78.target=/overlay
root@SmartRouter:/etc/config# uci set fstab.cfg044d78.fstype=ext4
root@SmartRouter:/etc/config# uci set fstab.cfg044d78.options=rw,sync
root@SmartRouter:/etc/config# uci set fstab.cfg044d78.enable=1
root@SmartRouter:/etc/config# uci set fstab.cfg044d78.enabled_fsck=0
保存全部fstab的配置:
root@SmartRouter:/etc/config# uci commit fstab
重新启动系统使一些生效:
root@SmartRouter:/# reboot
/overlay是否已经到磁盘上(如下显示表示挂载):
我们来检测下是否swap已经工作了(Swap部分的free有了值表示生效):
外置磁盘挂载后要注意事项
事项A: 事实就是系统已经变了
从本节开始,到以后我们再也不用操作FLASH原有的可写分区了,也就是说同样的/etc/config/fstab这个文件,上面的修改永久的保存在了FLASH可写分区里,下面我们再做修改就都是针对外置磁盘的了。 |
|