分类 博客文章 下的文章

安装Ubuntu系统时硬盘分区方案

安装Ubuntu系统时硬盘分区方案

了解分区类型

1:/.分区

  根目录,一般用于存储系统文件的分区。

2:swap分区

  交换分区,也可表示一种文件系统,它是Linux系统的虚拟内存。
  在Windows系统下,虚拟内存是以存储在分区中的文件形式存在的,文件名为pagefile.sys;在Linux系统下,虚拟内存需要使用独立的分区,该分区有专用的swap文件系统。

3:/boot分区

  该分区包含了操作系统内核,和一些启动过程中的必要文件。一般情况没有必要单独分区。
在很多老旧的教程中,都会让用户在/boot目录上挂载一个大小为100MB左右的独立分区,并推荐把该/boot放在硬盘的前面——即1024柱面之 前。事实上,那是Lilo无法引导1024柱面后的操作系统内核的时代的遗物了。当然,也有人说,独立挂载/boot的好处是可以让多个Linux共享一个/boot。
其实,无论是基于上述的哪种理由,都没有必要把/boot分区独立出来。首先,Grub可以引导1024柱面后的Linux内核;其次,即使是安装有多个 Linux,也完全可以不共享/boot。因为/boot目录的大小通常都非常小,大约20MB,分一个100MB的分区无疑是一种浪费,而且还把把硬盘 分的支离破碎的,不方便管理。另外,如果让两个Linux共享一个/boot,每次升级内核,都会导致Grub的配置文件冲突,带来不必要的麻烦。而且,不独立/boot分区仅仅占用了根目录下的大约20MB左右的空间,根本不会对根目录的使用造成任何影响。
但值得注意的是,随着硬盘容量的增大,无法引导Linux内核的现象再次出现,这也就是著名的137GB限制。很遗憾,Grub是无法引导137GB之后 的分区中的Linux内核的。如果你不巧遇到了这样的情况,你就要考虑把/boot独立挂载到位于137GB前方的独立分区中,或者索性就把 Linux的分区都往前移动,让根目录所在分区位于137GB之前。
以上关于/boot分区介绍来自 ropenyuan 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/RopenYuan/article/details/44917271?utm_source=copy

4:/home分区

  用户的home目录所在地,这个分区的大小设置取决于有多少用户需求。如果是多用户共同使用一台电脑的话,这个单独分区是完全有必要的,且根用户也可以很好地控制普通用户使用计算机,如对用户或者用户组实行硬盘限量使用,限制普通用户访问哪些文件等。
  有独立的分区挂载/home,即使遇到Ubuntu系统莫名挂掉,也可以直接重装系统,而不影响存储于/home下的用户文件。就像常有人说Windows系统不要把重要文件放系统盘一样。

5:/var;/tmp 分区

/var:系统日志记录分区。
/tmp:用于存放临时文件。
  这两个目录是用于存放日志和临时文件的。建议将其独立挂载到单独分区的教程一般面向服务器,这样有利于提高服务器性能,个人用户桌面级应用就没有这个必要了。

分区方案

1:只有一个主分区

  /.(主分区):主分区,只分这一个区,将所有空闲空间(free space)都分给主分区。

  不推荐使用这种方法,没有swap交换空间,当然物理内存够大也可以。

2:主分区 + swap分区

  Swap(虚拟内存):swap分区,如果物理内存等于或低于512M,大小设为物理内存两倍。物理内存大于512M情况一般设置为电脑内存大小,或者可以再加1、2G;

  /.(主分区):主分区,其他剩余空间都分给主分区。

  一般情况这种方案即可。

3:主分区 + home单独挂载 + swap

  /.(主分区):主分区,分配20G;

  Swap(虚拟内存):swap分区,如果物理内存等于或低于512M,大小设为物理内存两倍。物理内存大于512M情况一般设置为电脑内存大小,或者可以再加1、2G;

  /home(用户存储数据用):逻辑分区,存储用户数据,这方面类似于Windows下User文件夹,要尽可能大,剩余空间分配给这个分区。

  考虑上文提到的文件安全的情况,可以用这种方案,单独分区挂载/home。

Solidworks开坑:绘制摇杆-已知球缺求原球体

前言

  此项目来自于工作需求,起因是我司维护的某款机器一个零件缺货,该零件是用于将摇杆电位器连到机器外操作摇杆的一系列零件中的一个结构件。因该机器是一款儿童玩具,损坏几率不低,没有本零件将无法为其修复。为此计划使用3D打印机制作该零件,且因公司不提供该零件的3D模型文件,为解决此问题,建立本项目。

准备

  因之前没有接触过3D建模领域,所以该项目查找了大量网络资料。通过查找资料得知,这种工件类设计使用Solidworks(后称SW)比较合适。于是通过查找资料,采用边学习边做的方式尝试对该零件进行建模。

  零件形状如图所示;
摇杆1.png

  考虑零件形状,组成结构类似于一个半球上加一个圆柱,内部是空的,该零件是左右对称的解构。通过搜索引擎得知,SW可以通过草图旋转产生3D模型,于是我们就需要设计一个可以用于旋转产生的草图。
草图A.png

  接下来事情是要确定下面那个类似半球的结构,其底面直径可以测出,但是观察发现,这个并非一个半球,这个球缺比它所属的球的半球小,这样我们就要先算一下这个球缺所属球体的数据。

求解过程

  我先画了一个截面图,能够测量出的数据有a = 14.5mm,b = 15.75mm;设r为原始球体的半径,则a+y = r。
截面图.JPG

  根据三角行外接圆半径公式
$R = \frac{abc}{4s}$

  这个公式中的字母与我图中画的无关,其中R是圆的半径,abc分别为三角形三边的长,S为三角形的面积。如图可见,三角形BCC'是这个圆的内接三角形。

  公式套到我的图中就是:$r = \frac{2bcc^′}{4 \frac{2ba}{2}}$ ;下图
公式2.JPG

  代入勾股定理得;
r = (2b(√(a^2+b^2 ))^2)/(4 2ab/2),下图
公式3.JPG

  化简后得到:
r = (a^2+b^2)/2a,下图
公式4.JPG

  将数值代入公式;
r = (14⋅5^2+〖15.75〗^2)/(2×14.5)= 15.8(约值),下图
公式5.JPG

  至此,我算出了那个球的半径r约为15.8mm
  那么,y值约为15.8-14.5 = 1.3mm

异或的性质与应用

异或的性质与应用


 &#8195今天有朋友问我异或最重要的性质是什么,一时只记得以前有老师讲过,于是上网查了一下,并整理如下。

定义

&#8195&#8195异或是一种基于二进制的位运算,用符号XOR或者 ^ 来表示。其运算法则是对运算符两侧的数的每一位二进制位,相同结果为0,不同结果为1。它与或运算的区别在于,当运算符两侧均为1时,或运算结果为1,而异或运算结果为0。
  异或运算又称之为 半加 ,半加的概念就是不进位的加法;数学上称异或为 按位模2加 ,按位模2加就是按位进行两数相加后除以2取余的运算。

  半加运算是不考虑进位的,也就是说它的进位会被舍弃。很显然它的运算法则如下:
0+1=0 0+1=1 1+0=1 1+1=0
  模2运算是一种二进制算法,与四则运算相同。模2运算包含模2加,模2减,模2乘,模2除四种运算。比如模2加,按其定义,1与0模2加,其结果就是1+0 = 1,然后1/2为0余1, 所以1与0模2运算结果为1;再如,1与1模2加,其结果1+1 = 10=2(D),2/2结果为1余0,所以1与1模2加运算结果为0。以此类推,按位模2加的运算结果与半加运算是相同的。

性质

  1、 交换律
  2、 结合律(即(A^B)^C=A^(B^C))
  3、 对于任何数X,都有X^X = 0,X^0 = X
  4、 自反性 A^B^B = A^0 = A

  异或运算常见于多项式除法,但它最重要的性质是自反性,即A^B^B = A。即对于既定的数A,用同样的运算因子(B)与其做两次异或运算后得到的结果仍是A本身。这是一个神奇的性质,利用这个性质可以解决一些实际问题。例如:几乎所有的C语言教科书都会向初学者提出,要交换两个变量的值,必须引入一个中间变量。但我们知道异或后,我们有了一种新的办法,这种办法可以不使用中间变量。设有A,B两个变量,存储的值分别为a,b,则以下三行表达式可互换他们的值:
A = A^B // (A = a^b)
B = B^A // ( B = b^ (a^b) == a^b^b == a)
A = A^B // ( A = (a^b)^ a == b^a^a == b)
类似的,该运算还可应用于加密,数据传输,校验等许多领域。

应用举例

设1~1000放在含有1001个元素的数组中,只有唯一的一个元素值重复,其它数只出现一次;设计算法,将这个数找出来,要求每个元素只能访问一次,不能使用辅助变量。

解法一:

  显然已经有人提出了一个比较精彩的解法,将所有数加起来,减去1+2+...+1000的和。这个算法已经足够完美了,相信出题者的标准答案也就是这个算法,唯一的问题是,如果数列过大,则可能会导致溢出。

解法二:

  异或就没有这个问题,并且性能更好。
  将所有的数全部异或,得到的结果与1^2^3^...^1000的结果进行异或,最终得到的结果就是重复的数。

  这个算法虽然看起来简单,但证明起来并不是一件容易的事情。这与异或运算的几个特性有关:
  首先是异或运算满足交换律、结合律。所以,1^2^...^n^...^n^...^1000,无论这两个n出现在什么位置,都可以转换成为1^2^...^1000^(n^n)的形式。
  其次,对于任何数x,都有x^x=0,x^0=x。

所以:
  1^2^...^n^...^n^...^1000 = 1^2^...^1000^(n^n)= 1^2^...^1000^0 = 1^2^...^1000(即序列中除了n的所有数的异或)。

  设,1^2^...^1000(该序列中不包含n)的结果为T
  则,1^2^...^1000(该序列中包含n)的结果就是T^n
  T^(T^n)=n
所以,将所有元素的值全部异或,得到的结果再与1^2^3^...^1000的结果进行异或,得到的结果就是重复数。

本文部分内容参考网络

DOS指令Attrib的使用方法

DOS指令Attrib的使用方法

之前写过一篇关于U盘中隐藏文件病毒后处理的教程,其中提到了attrib命令,U盘中的文件被病毒设置了系统隐藏之后,使用attrib –s –h /s /d命令将U盘根目录中的文件的系统隐藏属性全部去除。本文介绍该命令的其他用法。

attrib指令用于修改文件的属性。文件的常见属性有:只读、存档、隐藏和系统。

只读属性是指文件只可以做读的操作,不能对文件进行写的操作,就是文件的写保护。存档属性是用来标记文件改动的,即在上一次备份后文件有所改动。一些备份软件在备份的时候会只去备份带有存档属性的文件。隐藏属性顾名思义即为隐藏文件。在通常情况下,在资源管理器中不显示带有隐藏属性的文件。系统属性是指标注文件为系统文件,是系统需要调用的文件,系统属性包括隐藏和只读属性,在WINDOWS GUI(图形用户界面)模式下不能更改文件的系统属性。

attrib指令的格式和常用参数为:

ATTRIB [+R | -R] [+A | -A ] [+S | -S] [+H | -H] [[drive:] [path] filename] [/S [/D]]

+ 设置属性。

– 清除属性。

R 只读文件属性。

A 存档文件属性。

S 系统文件属性。

H 隐藏文件属性。

I 无内容索引文件属性。


[drive:][path][filename]

指定要处理的文件属性。

格式为:盘符:\文件夹\下层文件夹。。。\文件名.后缀名 ,还不明白看后面例子

/S 处理当前文件夹及其子文件夹中的匹配文件。

/D 处理文件夹。

/L 处理符号链接和符号链接目标的属性。


举两个例子:

1:我要将U盘(盘符G:)根目录一个名为IMG.zip的文件添加只读、系统、隐藏属性。

image1.jpg


按windows徽标键+R 打开运行,输入CMD,确定,打开命令提示符
image2.jpg


确保输入法处于英文状态,输入attrib +R +S +H G:\IMG.zip 回车
image3.jpg


U盘中的IMG.zip已经不见了。
image4.jpg


我们看一下文件的属性,只读属性和系统 隐藏已经被添加了。
image5.jpg


2:下面的例子,将U盘(盘符G:)根目录的IMG文件夹设置系统 隐藏属性。

image6.jpg


参照上例打开命令提示符,输入attrib +S +H G:\IMG /S /D
image7.jpg


可以看见,文件不见了。
image8.jpg


如下图所示,文件夹已添加了系统 隐藏属性。
image9.jpg



相信通过以上例程,大家应该对这个命令如何使用有了一定的了解了。

在VMware Workstation虚拟机中安装Windows7

虚拟机系统安装
点击 编辑虚拟机设置>硬件>CD/DVD(SATA),选择使用ISO镜像文件,点击浏览,选定要使用的光盘镜像。点击确定关闭设置窗口。
(相关镜像可以在MSDN I tell You找到)
image1.jpg


点击开启此虚拟机,
image2.jpg



若提示此窗口,点击确定即可
image3.jpg


虚拟机开始加载windows预安装,到出现此页面,如图设置,点击下一步,
image4.jpg


点击 现在安装(I),稍后出现请阅读许可条款
image5.jpg


选择我接收许可条款,点击下一步;
image6.jpg

以下页面选择 自定义(高级)下一步;
image7.jpg


选择驱动器选项(高级)
image8.jpg


点选磁盘0未分配空间,点击新建>应用,弹出的窗口中选择确定。点击下一步开始Windows7系统的安装。
image9.jpg


等待。。该阶段结束后会自动重启
image10.jpg


image11.jpg



待出现以下页面时,设置用户名和计算机名。点击下一步;
image12.jpg


你可以在本页设置密码。本例留空。点击下一步;
image13.jpg


下一页输入激活码,此处留空。点击跳过
image14.jpg


下一页为安全设置页,自行设置即可,我选择以后询问我。
image15.jpg


下一步设置时间,直接点击继续即可。
设置网路,按需求,设置,我此处选择工作网路点击下一步,提示windows正在完成设置。
image16.jpg


稍后系统设置完毕,进入桌面。
image17.jpg


接下来点击虚拟机>安装VMware Tools
image18.jpg


在虚拟机里打开资源管理器,你会看到一个图标为VM的移动存储设备
双击开始安装,弹出用户账户控制窗口选择是,开始安装。安装过程一路点击下一步即可。最后完成安装。
image19.jpg


然后提示需要重新启动,点击是重新启动虚拟机。
image20.jpg


重启完成后点击查看>立即适应客户机。系统就会正常全屏显示。
image21.jpg


已经正常显示。
image22.PNG

VMware Workstation虚拟机文件的创建

打开VMware Workstation,选择文件>新建虚拟机;
image1 (1).jpg



选择自定义(高级),点击下一步,
image1 (2).jpg


硬件兼容性默认即可,点击下一步;
image1 (3).jpg


选择稍后安装操作系统,点击下一步;
image1 (4).jpg


在该页选择你要安装的操作系统,本例我们选择Microsoft Windows7(X64),点击下一步;
image1 (5).jpg


接下来我们需要选择要创建的虚拟机的名称,按照自己的想法设置,应该通俗易懂。点击下一步;
image1 (6).jpg


下面的页面我们设置引导方式,有BIOS和UEFI两种模式,一般Windows7及以前版本的系统选择BIOS,Windows8及以后的系统选择UEFI。在此选择BIOS,点击下一步;
image1 (7).jpg


接下来的页面中我们设置虚拟机的处理器信息,根据自己的需要设置即可,在此我设置为一个处理器,每个处理器四个核心。点击下一步;
image1 (8).jpg



接下来设置虚拟内存,需要参考自己的需求与自己计算机的实际内存设置最好不要超过自己实际物理内存的一半。在此我设置为我物理内存的一半。点击下一步;
image1 (9).jpg



下面设置网络模式,根据自己的需求设置,在此我设置为NAT。点击下一步;
image1 (10).jpg

接下来的I/O控制器和虚拟磁盘类型选择默认即可。



接下来是选择磁盘,选择创建新虚拟磁盘。点击下一步;
image1 (11).jpg



接下来设置磁盘的大小,一般我们按照需求设置硬盘的大小,不选择立即分配所有磁盘空间,将磁盘空间存储为单个文件。
image1 (12).jpg



下面我们设置虚拟磁盘的名称。我保持默认。下一步;
image1 (13).jpg



点击自定义硬件,打开硬件设置窗口;点击USB控制器项,取消勾选与虚拟机共享蓝牙设备,因为部分机器共享蓝牙设备可能会导致蓝牙不可用。完成设置后点击关闭;
image1 (14).jpg



点击完成,完成虚拟机的创建。
image1 (15).jpg