2015年1月

今天我们将会向你展示如何使用 lsblkblkid 工具来查找关于块设备的信息,我们使用的是一台安装了 CentOS 7.0 的机器。

lsblk

lsblk 是一个 Linux 工具,它会显示有关你系统里所有可用块设备的信息。它从 sysfs 文件系统 中获取信息。默认情况下,这个工具将会以树状格式显示(除了内存虚拟磁盘外的)所有块设备。

lsblk 默认输出

默认情况下 lsblk 会将块设备输出为树状格式:

  • NAME —— 设备的名称
  • MAJ:MIN —— Linux 操作系统中的每个设备都以一个文件表示,对块(磁盘)设备来说,这里用主次设备编号来描述设备。
  • RM —— 可移动设备。如果这是一个可移动设备将显示 1,否则显示 0。
  • TYPE —— 设备的类型
  • MOUNTPOINT —— 设备挂载的位置
  • RO —— 对于只读文件系统,这里会显示 1,否则显示 0。
  • SIZE —— 设备的容量

显示设备的所有者

若想显示设备所有者相关的信息,包括文件的所属用户、所属组以及文件系统挂载的模式,你可以使用 -m 选项,像这样:

lsblk -m

列出设备块

如果你只想要列出设备,而不想让他们以树状输出,你可以使用 -l 选项:

lsblk -l

在脚本中使用

高级技巧:如果你想要在脚本中使用而希望剔除表头,你可以这样使用 -n 选项:

lsblk -ln

blkid

blkid 命令是一个命令行工具,它可以显示关于可用块设备的信息。它可以识别一个块设备内容的类型(如文件系统、交换区)以及从内容的元数据(如卷标或 UUID 字段)中获取属性(如 tokens 和键值对)。它主要有两类作用:用指定的键值对搜索一个设备,或是显示一个或多个设备的键值对。

blkid 使用方法

不添加任何参数直接运行 blkid 将会输出所有可用的设备、它们的通用唯一识别码(UUID)、文件系统类型以及卷标(如果有设置过)。

# blkid

根据名字或 UUID 列出设备

如果你只想显示一个特定设备的信息,你可以将该设备的名字作为选项添加在 blkid 后面:

# blkid /dev/sda1

如果你知道一个设备的 UUID 而想要知道它的设备名,你可以用 -U 选项,像这样:

# blkid -U d3b1dcc2-e3b0-45b0-b703-d6d0d360e524

详细信息

如果你想要获取更多详细信息,你可以使用 -p 和 -o udev 选项来将它们用整齐的格式显示出来,像这样:

# blkid -po udev /dev/sda1

重置缓存

有时候设备列表可能不会更新,如果遇到这种情况你可以使用 -g 选项来清理 blkid 的缓存,从而清除已经不存在的设备。

# blkid -g

via: http://linoxide.com/linux-command/linux-command-lsblk-blkid/

作者:Adrian Dinu 译者:felixonmars 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

如果你的工作中需要接触到各种不同编码格式的图像、音频和视频,那么你很有可能正在使用多个工具来转换这些多种多样的媒体格式。如果存在一个能够处理所有图像/音频/视频格式的多合一转换工具,那就太好了。

Format Junkie 就是这样一个多合一的媒体转换工具,它有着极其友好的用户界面。更棒的是它是一个免费软件。你可以使用 Format Junkie 来转换几乎所有的流行格式的图像、音频、视频和归档文件(或称压缩文件),所有这些只需要简单地点击几下鼠标而已。

在Ubuntu 12.04, 12.10 和 13.04 上安装 Format Junkie

Format Junkie 可以通过 Ubuntu PPA format-junkie-team 进行安装。这个PPA支持Ubuntu 12.04, 12.10 和 13.04。在以上任意一种Ubuntu版本中安装Format Junkie的话,简单的执行以下命令即可:

$ sudo add-apt-repository ppa:format-junkie-team/release
$ sudo apt-get update
$ sudo apt-get install formatjunkie
$ sudo ln -s /opt/extras.ubuntu.com/formatjunkie/formatjunkie /usr/bin/formatjunkie

将 Format Junkie 安装到 Ubuntu 13.10

如果你正在运行Ubuntu 13.10 (Saucy Salamander),你可以按照以下步骤下载 .deb 安装包来进行安装。由于Format Junkie 的 .deb 安装包只有很少的依赖包,所以使用 gdebi deb installer 来安装它。

在32位版Ubuntu 13.10上:

$ wget https://launchpad.net/~format-junkie-team/+archive/release/+files/formatjunkie_1.07-1~raring0.2_i386.deb
$ sudo gdebi formatjunkie_1.07-1~raring0.2_i386.deb
$ sudo ln -s /opt/extras.ubuntu.com/formatjunkie/formatjunkie /usr/bin/formatjunkie 

在32位版Ubuntu 13.10上:

$ wget https://launchpad.net/~format-junkie-team/+archive/release/+files/formatjunkie_1.07-1~raring0.2_amd64.deb
$ sudo gdebi formatjunkie_1.07-1~raring0.2_amd64.deb
$ sudo ln -s /opt/extras.ubuntu.com/formatjunkie/formatjunkie /usr/bin/formatjunkie 

将 Format Junkie 安装到 Ubuntu 14.04 或之后版本

现有可供使用的官方 Format Junkie .deb 文件需要 libavcodec-extra-53,不过它从Ubuntu 14.04开始就已经过时了。所以如果你想在Ubuntu 14.04或之后版本上安装Format Junkie,可以使用以下的第三方PPA来代替。

$ sudo add-apt-repository ppa:jon-severinsson/ffmpeg
$ sudo add-apt-repository ppa:noobslab/apps
$ sudo apt-get update
$ sudo apt-get install formatjunkie 

如何使用 Format Junkie

安装完成后,只需运行以下命令即可启动 Format Junkie:

$ formatjunkie 

使用 Format Junkie 来转换音频、视频、图像和归档格式

就像下方展示的一样,Format Junkie 的用户界面简单而且直观。在顶部的音频、视频、图像和iso媒体四个标签当中点击你需要的那个。你可以根据需要添加任意数量的文件用于批量转换。添加文件后,选择输出格式,直接点击 "Start Converting" 按钮进行转换。

Format Junkie支持以下媒体格式间的转换:

  • Audio: mp3, wav, ogg, wma, flac, m4r, aac, m4a, mp2.
  • Video: avi, ogv, vob, mp4, 3gp, wmv, mkv, mpg, mov, flv, webm.
  • Image: jpg, png, ico, bmp, svg, tif, pcx, pdf, tga, pnm.
  • Archive: iso, cso.

用 Format Junkie 进行字幕编码

除了媒体转换,Format Junkie 可提供了字幕编码的图形界面。实际的字幕编码是由MEncoder来完成的。为了使用Format Junkie的字幕编码接口,首先你需要安装MEencoder。

$ sudo apt-get install mencoder

然后点击Format Junkie 中的 "Advanced"标签。选择 AVI/subtitle 文件来进行编码,如下所示:

总而言之,Format Junkie 是一个非常易于使用和多才多艺的媒体转换工具。但也有一个缺陷,它不允许对转换进行任何定制化(例如:比特率,帧率,采样频率,图像质量,尺寸)。所以这个工具推荐给正在寻找一个简单易用的媒体转换工具的新手使用。

喜欢这篇文章吗?请在下面发表评论吧。多谢!


via: http://xmodulo.com/how-to-convert-image-audio-and-video-formats-on-ubuntu.html

作者:Dan Nanni 译者:Ping 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出

最近使用Docker下载“官方”容器镜像的时候,我发现这样一句话:

ubuntu:14.04: The image you are pulling has been verified (您所拉取的镜像已经经过验证)

起初我以为这条信息引自Docker大力推广的镜像签名系统,因此也就没有继续跟进。后来,研究加密摘要系统的时候——Docker用这套系统来对镜像进行安全加固——我才有机会更深入的发现,逻辑上整个与镜像安全相关的部分具有一系列系统性问题。

Docker所报告的,一个已下载的镜像经过“验证”,它基于的仅仅是一个标记清单(signed manifest),而Docker却从未据此清单对镜像的校验和进行验证。一名攻击者以此可以提供任意所谓具有标记清单的镜像。一系列严重漏洞的大门就此敞开。

镜像经由HTTPS服务器下载后,通过一个未加密的管道流进入Docker守护进程:

[decompress] -> [tarsum] -> [unpack]

这条管道的性能没有问题,但是却完全没有经过加密。不可信的输入在签名验证之前是不应当进入管道的。不幸的是,Docker在上面处理镜像的三个步骤中,都没有对校验和进行验证。

然而,不论Docker如何声明,实际上镜像的校验和(Checksum)从未经过校验。下面是Docker与镜像校验和的验证相关的代码片段,即使我提交了校验和不匹配的镜像,都无法触发警告信息。

if img.Checksum != "" && img.Checksum != checksum {
  log.Warnf("image layer checksum mismatch: computed %q,
             expected %q", checksum, img.Checksum)
}

不安全的处理管道

解压缩

Docker支持三种压缩算法:gzip、bzip2和xz。前两种使用Go的标准库实现,是内存安全(memory-safe)的,因此这里我预计的攻击类型应该是拒绝服务类的攻击,包括CPU和内存使用上的当机或过载等等。

第三种压缩算法,xz,比较有意思。因为没有现成的Go实现,Docker 通过执行(exec)xz二进制命令来实现解压缩。

xz二进制程序来自于XZ Utils项目,由大概2万行C代码生成而来。而C语言不是一门内存安全的语言。这意味着C程序的恶意输入,在这里也就是Docker镜像的XZ Utils解包程序,潜在地存在可能会执行任意代码的风险。

Docker以root权限运行 xz 命令,更加恶化了这一潜在威胁。这意味着如果在xz中出现了一个漏洞,对docker pull命令的调用就会导致用户整个系统的完全沦陷。

Tarsum

对tarsum的使用,其出发点是好的,但却是最大的败笔。为了得到任意一个加密tar文件的准确校验和,Docker先对tar文件进行解密,然后求出特定部分的哈希值,同时排除剩余的部分,而这些步骤的顺序都是固定的

由于其生成校验和的步骤固定,它解码不可信数据的过程就有可能被设计成攻破tarsum的代码。这里潜在的攻击既包括拒绝服务攻击,还有逻辑上的漏洞攻击,可能导致文件被感染、忽略、进程被篡改、植入等等,这一切攻击的同时,校验和可能都是不变的。

解包

解包的过程包括tar解码和生成硬盘上的文件。这一过程尤其危险,因为在解包写入硬盘的过程中有另外三个已报告的漏洞

任何情形下未经验证的数据都不应当解包后直接写入硬盘。

libtrust

Docker的工具包libtrust,号称“通过一个分布式的信任图表进行认证和访问控制”。很不幸,对此官方没有任何具体的说明,看起来它好像是实现了一些javascript对象标记和加密规格以及其他一些未说明的算法。

使用libtrust下载一个清单经过签名和认证的镜像,就可以触发下面这条不准确的信息(说不准确,是因为事实上它验证的只是清单,并非真正的镜像):

ubuntu:14.04: The image you are pulling has been verified(您所拉取的镜像已经经过验证)

目前只有Docker公司“官方”发布的镜像清单使用了这套签名系统,但是上次我参加Docker管理咨询委员会的会议讨论时,我所理解的是,Docker公司正计划在未来扩大部署这套系统。他们的目标是以Docker公司为中心,控制一个认证授权机构,对镜像进行签名和(或)客户认证。

我试图从Docker的代码中找到签名秘钥,但是没找到。好像它并不像我们所期望的把密钥嵌在二进制代码中,而是在每次镜像下载前,由Docker守护进程通过HTTPS从CDN远程获取。这是一个多么糟糕的方案,有无数种攻击手段可能会将可信密钥替换成恶意密钥。这些攻击包括但不限于:CDN供应商出问题、CDN初始密钥出现问题、客户端下载时的中间人攻击等等。

补救

研究结束前,我报告了一些在tarsum系统中发现的问题,但是截至目前我报告的这些问题仍然没有修复。

要改进Docker镜像下载系统的安全问题,我认为应当有以下措施:

摒弃tarsum并且真正对镜像本身进行验证

出于安全原因tarsum应当被摒弃,同时,镜像在完整下载后、其他步骤开始前,就对镜像的加密签名进行验证。

添加权限隔离

镜像的处理过程中涉及到解压缩或解包的步骤必须在隔离的进程(容器?)中进行,即只给予其操作所需的最小权限。任何场景下都不应当使用root运行xz这样的解压缩工具。

替换 libtrust

应当用更新框架(The Update Framework)替换掉libtrust,这是专门设计用来解决软件二进制签名此类实际问题的。其威胁模型非常全方位,能够解决libtrust中未曾考虑到的诸多问题,目前已经有了完整的说明文档。除了已有的Python实现,我已经开始着手用Go语言实现的工作,也欢迎大家的贡献。

作为将更新框架加入Docker的一部分,还应当加入一个本地密钥存储池,将root密钥与registry的地址进行映射,这样用户就可以拥有他们自己的签名密钥,而不必使用Docker公司的了。

我注意到使用非Docker公司官方的第三方仓库往往会是一种非常糟糕的用户体验。Docker也会将第三方的仓库内容降为二等地位来看待,即使不因为技术上的原因。这个问题不仅仅是生态问题,还是一个终端用户的安全问题。针对第三方仓库的全方位、去中心化的安全模型既必须又迫切。我希望Docker公司在重新设计他们的安全模型和镜像认证系统时能采纳这一点。

结论

Docker用户应当意识到负责下载镜像的代码是非常不安全的。用户们应当只下载那些出处没有问题的镜像。目前,这里的“没有问题”并包括Docker公司的“可信(trusted)”镜像,例如官方的Ubuntu和其他基础镜像。

最好的选择就是在本地屏蔽 index.docker.io,然后使用docker load命令在导入Docker之前手动下载镜像并对其进行验证。Red Hat的安全博客有一篇很好的文章,大家可以看看。

感谢Lewis Marshall指出tarsum从未真正验证。

参考


via: https://titanous.com/posts/docker-insecurity

作者:titanous 译者:Mr小眼儿 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

介绍

也许还有不少人不知道MultiSystem,它是一个用来在Linux系统中创建多启动usb盘的小型的开源软件。使用这个工具,我们可以在USB中创建任意多的可启动Linux发行版。你所需要的只是网络链接(只在MultiSystem安装的时候需要),以及一个足够大的USB盘,这取决于你想在USB盘中放入发行版的数量。

在 Ubuntu 14.10/14.04 安装MultiSystem

手动安装:

下载 MultiSystem脚本,并解压到任意地方。进入解压的地址,使用下面的命令运行脚本。

sudo ./install-depot-multisystem.sh

使用 PPA 安装:

当然,你也可以用下面的命令来更简单地使用PPA来安装MultiSystem。

sudo apt-add-repository 'deb http://liveusb.info/multisystem/depot all main'
wget -q -O - http://liveusb.info/multisystem/depot/multisystem.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install multisystem

安装完之后,它会自动打开MultiSystem。只要点击关闭按钮退出。

安装之后

MultiSystem 安装完成后,可以插入你的USB,并通过Unity Dash或者菜单运行MultiSystem。

第一次启动时,MultiSystem界面看起来会像下面这样。

选择USB设备,点击确认按钮。如果你看到下面的错误窗口,不必担心,它说的是USB设备没有标签。点击OK让MultiSystem自动设置标签。

那么,拔出/重新插入USB,再次运行MultiSystem。选择USB盘,再次点击确认。现在,你被要求确认在USB中安装Grub2.点击OK继续。

最终,你会高兴地看到MultiSystem的界面。现在,时候创建多启动USB盘。

使用

MultiSystem非常容易使用。将ISO文件拖入MultiSystem窗口中。如果不行的话,点击底部的cd 按钮来选择ISO文件。

现在,MultiSystem会从ISO中拷贝文件,并让USB可启动。

相似地,你可以在你的USB中加入任意多的发行版。我这次加入了两个Linux发行版:CentOS 6.5和Android。

加完ISO文件后,你会在MultiSystem的主窗口中看到可启动的发行版列表了。

就是这样。我们的多启动USB盘就可以使用了。重启系统,并在BIOS中设置USB优先启动。选择你想要安装的发行版并开始安装系统。

此外,MultiSystem含有一些其它的选项:

  • Grub 设置
  • Grub 和 Burg 的bootloader更新
  • 下载 LiveCD
  • VirtualBox 安装
  • 格式化USB盘
  • 还有更多选项

这些额外选项可以在MultiSystem的菜单标签里面看到。

同样,你也可以在Ubuntu中使用QEMU或者Oracle VirtualBox测试多启动USB盘。

MultiSystem工具是我测试到现在最棒和最有用的一款工具。这款工具对那些想要在他们的机器上安装多个系统的人是非常有用的。在你外出的时候,你不必再携带CD/DVD袋了。只要买一个16GB或者32GB的USB就行,并下载所有你想要的系统,随心所欲的安装系统即可。

并且,一个对于Windows系统用户的好消息是它也支持Windows系统。我在Windows 7上测试过,它可以工作!

享受吧!


via: http://www.unixmen.com/create-multiboot-usb-ubuntu-using-multisystem/

作者:SK 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

上个月,在戴尔的服务中心丢失我的笔记本后,我买了一台 Macbook Air 笔记本。买回来后我首先做的一些事就是给机器装上双系统,使 Ubuntu Linux 和 Mac OS X 都可用。随后的文章我会介绍如何在 Macbook 上安装 Linux ,刚开始我们需要学习 如何在 Mac OS X 系统中创建用于 Mac 的 Ubuntu USB 启动盘

在 Ubuntu 系统或 Windows 系统中创建可启动的 USB 是非常容易的,但在 Mac OS X 系统中就没这么简单了。这就是为什么 Ubuntu 的官方指南上,在 Mac 中安装 live Ubuntu 推荐使用光盘安装而不是 USB 的原因。考虑到我的 Macbook Air 既没有 CD 驱动也没有 DVD 驱动,所以我更愿意在 Mac OS X 下创建一个 live USB。

在 Mac OS X 下创建可启动 USB 驱动盘

如前所述,在 Mac OS X 上创建对于像 Ubuntu 或任何其它可引导的操作系统这样的可启动 USB 盘是个比较麻烦的过程。但请别担心,按照下面的步骤一步一步操作就行。让我们就开始创建一个可启动的 USB 盘的操作吧:

步骤 1: 格式化 USB 驱动盘

苹果是以它自定义的标准而闻名的,所以 Mac OS X 系统有自己的文件系统类型就毫不奇怪了,它的文件系统叫做 Mac OS 扩展或 HFS 插件。因此,您需要做的第一件事就是用 Mac OS 扩展文件系统来格式化您的 USB 驱动盘。

要格式化 USB 盘,请先插入 USB 盘。从 Launchpad(在底部面板上的一个火箭形状的图标)上前往磁盘工具应用程序。

  • 在磁盘工具中,从左手边的面板上选择你的 USB 盘来格式化。
  • 点击右边面板的分区标签。
  • 从下拉菜单中,选择 1 分区
  • 给这驱动盘起个您想要的名字。
  • 接下来,切换分区格式为格式化成 Mac OS 扩展 (日志型)

下面的截屏将会对您有所帮助。

在我们开始真正格式化 USB 盘之前这是唯一一件要做的操作。点击在右边面板的选项按纽,要确保分区的模式是 GUID 分区表形式的。

当所有都已经设置完了后,仅仅只需点击应用按纽。它会弹出一个要格式化 USB 驱动盘的警告消息,当然是要点击分区按纽来格式化 USB 驱动盘拉。

步骤 2: 下载 Ubuntu

当然,您需要下载 Ubuntu 桌面版本的 ISO 镜像文件。链接到 Ubuntu 官网去下载您喜欢的 Ubuntu 桌面版本系统。因为您使用的是 Macbook Air,我建议您下载 64 位版本中的一款。Ubuntu 14.04 是最新的 LTS 版本,我建议您们使用它。

步骤 3: 把 ISO 格式转成 IMG 格式

您下载的文件是 ISO 格式的,但我们需要它是 IMG 格式的,使用 hdiutil 命令工具就可以很容易的转换。打开终端,也可以从 Launchpad 或 Spotlight 中打开,然后使用如下的命令就可以把 ISO 格式的转换成 IMG 格式的了:

hdiutil convert -format UDRW -o ~/Path-to-IMG-file ~/Path-to-ISO-file

通常下载的文件会在 ~/Downloads 目录下。所以在我的系统来,输入的命令是:

hdiutil convert -format UDRW -o ~/Downloads/ubuntu-14.10-desktop-amd64 ~/Downloads/ubuntu-14.10-desktop-amd64.iso

您可能已经注意到我并没有新转换出的文件加上 IMG 后缀。这是没问题的,因为后缀只是个标志,重要的是文件类型并不是文件的扩展名。转换出来的文件可能会被 Mac OS X 系统自动加上个 .dmg 后缀。别担心,这是正常的。

步骤 4: 获得 USB 盘的设备号

接下来的事情就是获得 USB 盘的设备号。在终端中运行如下命令:

diskutil list

它会列出系统中当前可用的所有‘磁盘’信息。从它的大小上您应该能识别出此 USB 盘。为了避免混淆,我建议您只插入一个 USB 盘。我的示例中,设置号是 2 (一个大小为 8G 的 USB): /dev/disk2

当得到设备号后,运行如下命令:

diskutil unmountDisk /dev/diskN

这儿的 N 就是前面您得到的 USB 的设备号。所以,我的示例中,上面的命令就变成:

diskutil unmountDisk /dev/disk2

执行结果应该是:成功的卸载 disk2 上的所有卷

步骤 5: 在 Mac OS X 中创建可启动的 USB 驱动盘

终于我们只有创建可启动的 USB 盘这最后一步了。我们会使用 dd 命令,它非常的强大,必须得小心使用。因此,一定要记得您 USB 驱动盘的正确设备号,要不然会使 Mac OS X 系统崩溃。在终端中使用如下命令:

sudo dd if=/Path-to-IMG-DMG-file of=/dev/rdiskN bs=1m

这儿我们使用 dd (拷贝和转换) 来把 IMG 输入文件 (if) 拷贝和转换到 磁盘 N 中。我希望您还记得在步骤 3 中已经生成的 IMG 文件的存放位置。对我的机器来说,命令如下所示:

sudo dd if=~/Downloads/ubuntu-14.10-desktop-amd64.dmg of=/dev/rdisk2 bs=1m

我们用超级用户权限(sudo)来运行上面的命令,还需要您输入密码。跟 Linux 中类似,您从键盘中输入密码时,将看不到任何星号或显示的提示,不用担心,这是 Unix 终端的习惯。

甚至在您输入完密码后,您都不会看到立即的输出,这是正常的。需要一小会儿时间才会处理完成。

步骤 6: 完成可启动 USB 驱动盘的整个处理过程

一旦 DD 命令处理完成,会弹出一个对话框:您插入的磁盘在这机器上不可读

别惊慌,一切正常。只是现在不要点击初始化、忽略或弹出按纽。回到终端,您会看到最新处理完成的一些信息。我的机器中显示如下:

1109+1 records in

1109+1 records out

1162936320 bytes transferred in 77.611025 secs (14984164 bytes/sec)

现在,在终端中使用如下命令来弹出我们的 USB 驱动盘:

diskutil eject /dev/diskN

N 当然指的是我们前面使用过的设备号,在我的示例中是 2 :

diskutil eject /dev/disk2

一旦弹出,点击前面出现那对话框上的忽略按纽。现在您的可启动 USB 磁盘已经创建好了,把它拔下来吧。

步骤 7: 检查您新创建的可启动 USB 盘

一旦您在 Mac OS X 中完成了创建一个 live USB 这么重大的任务,是时候测试您的新成果了。

  • 插入可启动 USB 盘,重启系统。
  • 在苹果启动的时候,一直按着 option (或 alt)键。
  • 这会引导您进入启动时需要访问的可使用磁盘界面。我假设您知道接下来的操作步骤。

对我机器来说它显示了两个 EFI 启动盘:

我选择第一个,然后它就会直接进入 Grub 界面:

我希望这篇教程对您想要在 Mac OS X 下创建可启动的 Ubuntu 系统 USB 驱动盘有所帮助。在接下来的一篇文章中您会学到怎么样安装 OS X 和 Ubuntu 双系统。请继续关注。


via: http://itsfoss.com/create-bootable-ubuntu-usb-drive-mac-os/

作者:Abhishek 译者:runningwater 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

下面的步骤会教你如何在Linux环境下手动删除Oracle 11g数据库。

我在Centos 6上安装了Oralce 11G数据库。

使用SQLPlus或者其他你喜欢的命令行工具登录数据库,登录用户是sysdba*

输入下面的命令的到不同文件的路径:

select name from v$datafile;
select member from v$logfile;
select name from v$controlfile;
select name from v$tempfile;

在SQLPlus中关闭数据库,接着退出SQLPlus

sqlplus  "/ as sysdba"

shutdown immediate;
quit;

在命令行中输入下面的命令停止监听服务:

在Oralce Linux账户中:

lsnrctl stop

回忆一下之前的文件路径;在删除这些文件的时候作为一个检查项。记住:你备份了数据库了么?当准备好之后,就删除你的数据文件吧,同样还有你的日志文件、控制文件和临时文件。

  • 进入 $ORACLE\_HOME/network/admin 目录并删除 tnsnames.oralistener.ora 文件;
  • 进入 $ORACLE\_HOME/dbs 目录并删除 init[db\_name].oraorapw[db\_name]spfile[db\_name].ora 文件;
  • 进入 $ORACLEHOME/admin/[dbname]/pfile 目录并删除 init[db\_name].ora 文件;
  • 进入 $ORACLEHOME/admin/[dbname]/adump 目录并删除所有文件;
  • 编辑/etc/oratab 并移除以你数据库名字开头的行.

这样就好了。


via: http://www.unixmen.com/manually-delete-oracle-11g-database/

作者:M.el Khamlichi 译者:geekpi 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出