关闭

双系统中的点滴

标签: ubuntu64位
341人阅读 评论(0) 收藏 举报
分类:

Ubuntu死机

不建议长按 Power 按键强制关机,有可能损坏硬件或者丢失数据,甚至导致磁盘坏道!

tty重启

通常套路是 Ctrl + Alt +F7 (F8) 切换到某个 tty,然后用 root 登陆,执行 top 查看吃资源最多的程序,然后使用 pkill/kill/killall 等命令杀死该程序。或使用组合键 Ctrl + Alt + Backspace重启 X (黑日白月注:这个快捷键组合在最新的 Ubuntu 和 Fedora 中关闭)。

  • 如果偶遇切换 tty 失败或者没响应,可以试着使用 SSH 登陆此电脑,然后再杀死程序。也许只是 X 不响应,而内核和 SSH daemon 仍然工作,故此可以实施此法。

  • 如果是在图形界面下死机的话,不要再依赖任何图形界面的工具,那样只会适得其反,可以先试试文字界面,按ctrl+alt+f2(F1-F6一般都可以),会切换到另外一个虚拟终端,需要一个账号来登入,这时键盘响应可能非常慢,但是是可以响应的,进入后打top命令看一下进程,等这个表刷那么一两次,就可以确定占用资源比较大的进程了,把它kill掉,这样可以解决相当一部分问题。

系统请求方式

但是有的时候是比较底层的软件出现问题,那这个方法就不适用了,但是这就引出了这篇文章要说的强强的方法。reisub方法,说具体一点,是一种系统请求,直接交给内核处理。键盘上一般都有一个键,SysRq,和PrintScreen在一个键位上,这就是系统请求的键。这个方法可以在死机的情况下安全的重启计算机,数据不会丢失。

具体操作是,按住Alt+SysRq,再依次按下reisub几个键,按完b系统就会重启。

下面解释一下这个方法:其实 Sys Rq 是一种叫做系统请求的东西,按住 Alt-Print 的时候就相当于按住了 Sys Rq 键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。这个时候 reisub 中的每一个字母都是一个独立操作,他们分别表示:

  • unRaw 将键盘控制从 X Server 那里抢回来
  • tErminate 给所有进程发送 SIGTERM 信号,让他们自己解决善后
  • kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭
  • Sync 将所有数据同步至磁盘
  • Unmount 将所有分区挂载为只读模式
  • reBoot 重启

这里有个问题要注意一下,最好不要快速连续地按下这几个键,要有间隔,大概是估计每个间隔10秒左右,因为每一步操作都需要时间,而且s键之后因为同步数据比较慢,可以停20秒。

魔法键reisub

如果某一天你的 Linux 死机了,键盘不听使唤了,Ctrl+Alt+F1 已经没有任何反应,该怎么办呢?想必你一定听说过“魔法键”:Alt+SysRq+r,e,i,s,u,b(确实很好背,就是单词 busier 的倒写)。好的,平时电脑那么正常,你自然也不会去按这些按钮。等到真的出事的时候,你把记在小纸条上的这些 tips 拿出来,然后在键盘上按,结果发现啥反应也没有,于是只能欲哭无泪了……

问题在于:究竟该怎么按这些按钮才会有效?
首先,你的系统要支持这个功能,查看和开启的方法大家应该很熟悉了,网上也有很多说明,而且最幸运的是:Ubuntu 默认已经开启了这个功能。
接下来就是操作:马上你就会发现,同时按下+压根儿行不通!只会蹦出来一个屏幕截图窗口。所以,真正的做法应该是:
(1)伸出你的左手,同时按住+键,别松开
(2)右手先按一下,左手别松开,等1秒
(3)右手按一下 R,左手别松开,等1秒
(4)右手按一下 E,左手别松开。这时包括桌面在内,所有程序都会终止,你会看到一个黑乎乎的屏幕,稍微等一段时间
(5)右手依次按下 I,S,U,B,左手别松开。每按一次都等那么几秒种,你会发现每按一次,屏幕上信息都会有所变化。最后按下B时,屏幕显示 reset,这时你的左手可以松开了,等几秒钟,计算机就会安全重启。

解决ubuntu 64位双系统问题,先安装win7,再安装ubuntu,发现ubuntu不能识别检测已经安装的win7,并且只能看到一整块硬盘,不能看到已经做好的win7分区的问题。

这个问题的原因是:虽然安装windows7使用了MBR分区,但是仍然有GPT 分区表信息存在,sudo parted /dev/sda print 中会显示:

Warning: /dev/sda contains GPT signatures, indicating that it has a GPT table.
However, it does not have a valid fake msdos partition table, as it should.
Perhaps it was corrupted -- possibly by a program that doesn't understand GPT
partition tables. Or perhaps you deleted the GPT table, and are now using an
msdos partition table. Is this a GPT partition table?
Yes/No? Yes 

解决方法是,用live CD引导进入Ubuntu,利用如下的命令清除 GPT signature
sudo dd if=/dev/zero of=/dev/sda bs=1 count=8 seek=512
问题解决了,分区配置时可以看到NTFS分区了。
详细步骤如下:

  1. 先下载一个ubuntu的ISO,然后通过UltraISO将其做到U盘中,形成一个启动盘和安装盘。
  2. 通过U盘启动进入到系统界面,选择,try ubuntu。
  3. 进入到live ubuntu下,在shell中输入:sudo dd if=/dev/zero of=/dev/sda bs=1 count=8 seek=512
  4. 再次通过引导进入到ubuntu的安装界面,就可以看到相关的分区了,然后就可以进行安装啦。

自动进入到ubuntu,没有选择应导项界面

sudo update-grup

After Install Ubuntu

install sublime_text

ln -s /usr/bin/subl /opt/Sublime\ Text\ 2/sublime_text
ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/subl
sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/subl

install compiler

gcc --version
g++ --version
make --version
sudo apt-get install cmake
sudo apt-get install cmake --version=
sudo apt-get install doxygen

uname -n
uname -a
sudo apt-get install python-pip

The kernel headers and development packages for the currently running kernel can be installed with:

  sudo apt-get install linux-headers-$(uname -r)

Install Boost

前期准备:boost中,用到了别的函数库,所以为了使用boost中相应的功能,需要先安装系统中可能缺失的库

apt-get install mpi-default-dev  #安装mpi库
apt-get install libicu-dev     #支持正则表达式的UNICODE字符集
apt-get install python-dev     #需要python的话
apt-get install libbz2-dev     #如果编译出现错误:bzlib.h: No such file or directory

上述函数库装好之后,就可以编译boost库了。解压boost_1_59_0.tar.bz2,得到/boost_1_59_0,将当前工作目录切换到此文件夹下。

./bootstrap.sh

生成bjam,上述命令可以带有各种选项,具体可参考帮助文档: ./bootstrap.sh –help。其中–prefix参数,可以指定安装路径,如果不带–prefix参数的话(推荐),默认路径是 /usr/local/include 和 /usr/local/lib,分别存放头文件和各种库。执行完成后,会生成bjam,已经存在的脚本将会被自动备份。注意,boost 1.59会在当前目录下,生成两个文件bjam和b2,这两个是一样的,所以接下来的步骤,可以用这两个中的任意一个来执行。
using mpi ;  #如果需要MPI功能,需要在 /tools/build/v2/user-config.jam 文件的末尾添加

接下来就是利用生成的bjam脚本编译源代码了

./b2 -a -sHAVE_ICU=1  #-a参数,代表重新编译,-sHAVE_ICU=1代表支持Unicode/ICU

注意,这里是全部编译。当然也可以选择只编译一部分,选项 –with- 只编译指定的库,如输入–with-regex就只编译regex库了。boost1.49 的完全编译,在笔者Intel® Core™2 Duo CPU T5750 @ 2.00GHz × 2 ,2G DDR2内存的老机子上,使用上述选项,半个小时就差不多了。这个时间是可以承受的。全部编译安装,心理上感觉也舒服些。^_^

bjam的一些常用的参数,列表如下:

--build-dir=<builddir> 编译的临时文件会放在builddir里(这样比较好管理,编译完就可以把它删除了)
--stagedir=<stagedir> 存放编译后库文件的路径,默认是stage
--build-type=complete

编译所有版本,不然只会编译一小部分版本,确切地说是相当于:
variant=release,threading=multi;link=shared|static;runtime-link=shared
- variant=debug|release 决定编译什么版本(Debug or Release?)
- link=static|shared 决定使用静态库还是动态库
- threading=single|multi 决定使用单线程还是多线程库
- runtime-link=static|shared 决定是静态还是动态链接C/C++标准库

--with-<library> 只编译指定的库,如输入--with-regex就只编译regex库了
--show-libraries 显示需要编译的库名称

编译完成后,进行安装,也就是将头文件和生成的库,放到指定的路径(–prefix)下

./b2 install

至此,如果一切顺利,就完成安装了。写个小程序检验下,来自《Boost程序库完全开发指南——深入C++“准”标准库(修订版)》(罗剑锋著,电子工业出版社2012.5)

The Boost C++ Libraries were successfully built!

这个已经写成了自动化安装脚本

install numpy module with pip

sudo apt-get install libatlas-base-dev **gfortran**
sudo pip install scipy

install Sublime

ctrl+`

import urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())

ctrl+shift+p to install package

C++ completate

install Chrome

download chrome from Chrome

sudo dpkg -i google-chrome-statble-***.deb

更多安装脚本

  1. [ubuntu-debian script](https://github.com/milq/scripts-ubuntu-debian.git
  2. [经过添加部分脚本的scripts](https://github.com/cwlseu/scripts-ubuntu-debian.git

设置windows网络

@echo off
echo **************************************************************************
echo * 修改工作单位IP地址、DNS *
echo * Windows 7 Copyright (C) 2016-08-14 *
echo **************************************************************************

echo 正在修改IP地址和DNS服务器地址,请耐心等待…………

echo 正在更改本机IP地址...
netsh interface ipv4 set address name="本地连接" source=static addr=192.168.160.85 mask=255.255.255.0 gateway=192.168.160.1 gwmetric=0 >nul

echo 正在添加本机首选DNS服务器...
netsh interface ipv4 set dns name="本地连接" source=static addr=124.16.136.254 register=PRIMARY
echo 检查当前本机配置...

ipconfig /all
pause
0
0

猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:23907次
    • 积分:467
    • 等级:
    • 排名:千里之外
    • 原创:23篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条