Browsed by
标签: windows

给 vbox 的客机系统扩容

给 vbox 的客机系统扩容

主机是Window 10, 运行在 VirtualBox 中的客机系统是 Debian (testing)。当初估计不足,只划了 8G 空间给客机系统,因此面临着容量不足的问题,迫切需要扩容,要不然就要重新构建一个客机,实在过于麻烦了。

从网上搜集了一些信息,有各种问题。绝大部分的资料其实不能算扩容,无非就是增加一个盘,然后 mount 到新的分区而已。而我希望是将现有的虚拟硬盘直接扩容,无需改变或者 mount 特定的分区或者目录。最后通过安装 GParted 软件,加上修改部分配置,终于解决了问题,从8G 扩展到 28G, 如下图所示:

扩容后的硬盘分区
扩容后的硬盘分区

系统只有两个分区: 主分区 和 交换分区。目的就是扩大主分区(/dev/sda1)的容量即可,其他无需改变(至少在使用者的角度是没有任何变化)。

增加 VBox 虚拟介质容量

VBox 新版都支持给虚拟介质扩容,操作简单。在“管理 – 虚拟介质管理”里找到客机的虚拟介质,直接增加容量即可。比如,将介质从 8G 直接调整到 28G。

但是客机系统不是直接就使用了扩容的硬盘容量。新增加的部分对客机系统而言,属于“未分配”的容量,因此需要进入客机系统(也就是 Debian)中进行磁盘管理,让系统能识别、管理这部分新容量。

Debian 磁盘管理

牛人直接用 fdisk 大概就可以搞定。作为一名无可救药的图形界面党, 我当然还是倾向于使用图形界面的软件来解决问题(非常不 linux,非常不 geeker),也就是 GParted。

GParted 很像 Windows 的磁盘管理工具,因此使用起来油然而生熟悉的感觉。启动 GParted 后,很容易就看到未分配的磁盘容量。可惜不能直接移动或者扩容/dev/sda1,原因大概是中间有个 swap 分区。刚开始我被困住了,后来想明白:

既然 swap 分区阻挡了主分区的扩容(移动),那删除掉 swap 分区,那主分区和未分配分区不就连起来了吗? 试试后发现果然如此:(1)删除 swap 分区, (2)调整主分区(/dev/sda1)的大小,(3)然后再重新将剩余的分区设置为 swap 分区。

千万别格式化主分区!只需要重新格式化 swap 分区即可。

GParted 有个bug:在上述步骤中,重新删除、创建了 swap 分区,可是 GParted 并没有修改 /etc/fstab 里对应的 UUID 值!导致每次重启后,发现 swap 区都没有激活使用。

解决这个bug也简单,在 GParted 中查询 swap 分区的属性,获取其 UUID 值,然后修改 /etc/fstab 中对应的 swap 分区的 UUID 值即可。

一点思考

本次扩容过程中,被 swap 分区困扰了很久,有各种问题。要么是 swap 分区阻挡了主分区扩容,要么是 swap 分区的 UUID 更新(这个算GParted的bug)。

如果不设置 swap 分区呢? 修改为采用 swap 文件方式,只保留一个主分区,这样就灵活很多。当然,实际部署 Linux 系统如果采用这种方式,可能会有问题(比如崩盘导致数据丢失等),既然是客机系统,倒是无所谓。

忙碌的一天

忙碌的一天

今天度过了忙碌的一天,然而其实什么都没有做,至少没做什么有意义的事情。

昨天收到短信,告知了上次交通违规的事(请点击这里了解细节),于是上午就打算去处理这事。先跑蛇口交警大队,据说打印机坏了,不处理,然后跑到南山交警大队去处理(人山人海啊)。结论是罚两百,不扣分,因此其实不用打印,直接在自助终端交罚款就行。在查询的时候咨询了交警同志,也认为这种罚单是有疑问的,想想折腾回江西提出异议的各种可能,还是直接交罚款了事。

一上午就这么过去了。

中午收到了windows系统升级的通知,于是习惯性的点击同意:升级失败回退一次;再次升级,中间异常退出若干次;升级完成后,出现几段鸡汤文字,然后卡死一次;冒险重新启动,然后发现程序异常一次……各种心惊肉跳的感觉。终于升级完成,版本变成”14393 187″,忍不住吐槽:真丑!微软越做越奇葩了,是因为三哥当头了么?

一下午就这么过去了。

晚上看着熊孩子写作业,怒火中烧,怎么就教不会?!

一天就这么过去了。

 

windows7系统下实现单无线网卡共享热点

windows7系统下实现单无线网卡共享热点

平时工作时除了笔记本电脑,还有就是旁边放ipad mini辅助。ipad mini有个很大的问题,wifi信号实在太弱了!同样一个桌面,笔记本、手机都可以收到无线信号,可是ipad mini就是不行,常常断网,十分烦恼。

于是在网络上搜了一下,结合几位网文的建议,在windows7系统下启动虚拟无线网卡供ipad mini上网。注意,网络上其他一些文章建立在计算机有两块物理网卡的情况下,而我的电脑里只有一个可以work的无线网卡,因此需要采用虚拟无线网卡方式。

以下命令都必须以管理员身份运行。

创建虚拟网卡,并设置ssid和访问密码:

netsh wlan set hostednetwork mode=allow ssid=think-yxh key=123456

启动虚拟无线网卡:

netsh wlan start hostednetwork

然后在网络管理中,选择物理网卡,修改“共享”属性,允许其他网络设备访问,并选择上述创建的虚拟网卡即可。

下面是一些常用的命令用于修改虚拟网卡的属性:

停止网卡: netsh wlan stop hostednetwork
修改访问密码: netsh wlan set hostednetwork key=1234
修改SSID: netsh wlan set hostednetwork ssid=work2
删除虚拟网卡:netsh wlan set hostednetwork mode=
重新开启虚拟网卡: netsh wlan set hostednetwork mode=allow

电脑重启后,虚拟网卡没有运行,需要手工启动,有些不方便。可以创建任务,让电脑在启动时或者用户登录时重新启动虚拟网卡即可。

点击菜单“启动 – 所有程序 – 附件 – 系统工具”,运行“任务计划程序”。创建一个基本任务即可。需要注意:

(1)只需要运行命令:netsh wlan start hostednetwork

(2)必须设置任务“使用最高权限运行”。

Android开发指导随译(2) — 应用程序基本原理(2) Activity(行为)

Android开发指导随译(2) — 应用程序基本原理(2) Activity(行为)

一个Activity(行为)代表了一个可视的用户交互接口. 例如, 一个文本消息程序可能会有一个Activity(行为)用于显示联系人列表, 第二个行为用于给选定的联系人写文本信息, 另外一个行为用于显示以前的信息或者改变设置. 它们共同工作提供了一个聚合的用户界面.

每个行为与其他行为都是独立的, 它们都是从Activity基类派生而来.

每个应用程序可以由一个或者多个行为构成. 通常在应用程序启动时, 会将其中一个行为设置为首先呈现给用户的行为. 当前行为可以启动下一个行为来实现行为的跳转.

每个行为都有一个缺省的窗体. 一般而言, 窗体总是填满整个屏幕的, 但是也可以比当前屏幕小些并且浮在其他窗体之上. 行为也可以使用附加的窗体,例如对话框等.

窗体的可视内容由View(视图)来提供, 所有的view都是从view基类派生. 每个view控制窗体的一部分区域. 父View包含和组织子view的布局. 叶子view(处在派生关系的底部)绘制它们控制的区域, 并响应用户在这部分区域的动作.

Android预置了一些view, 例如按钮, 文本框, 滚动条等. (笔注: 在windows编程中, 这些反而是窗体吧)

行为的窗体可以通过Activity.setContentView()方法设置view的层级关系, Content View(内容View)是这种层级关系中的根节点. (?)