Ubuntu下各種服務搭建及操作技巧

Ubuntu下搭建TFTP

1、安裝軟件包

sudo apt-get install tftpd tftp xinetd

2、建立配置文件

/etc/xinetd.d/下建立一個配置文件tftp

sudo vi /etc/xinetd.d/tftp

內容如下

  1. service tftp ?
  2. { ?
  3. ? ? socket_type = dgram ?
  4. ? ? protocol = udp ?
  5. ? ? wait = yes ?
  6. ? ? user = root ?
  7. ? ? server = /usr/sbin/in.tftpd ?
  8. ? ? server_args = -s /tftpboot ?
  9. ? ? disable = no ?
  10. ? ? per_source = 11 ?
  11. ? ? cps = 100 2 ?
  12. ? ? flags = IPv4 ?
  13. } ?

3、建立tftp服務文件目錄

在上面的配置中有server_args = -s /tftpboot,其中/tftpboot這個目錄就是上傳文件與下載文件的位置。

sudo mkdir /tftpboot? ? ? ? ? --創建/tftpboot目錄

sudo chmod 777 /tftpboot -R ? --設置權限為777

4、重新啟動tftp服務

sudo /etc/init.d/xinetd restart? --重啟tftp服務器

5、測試

sudo netstat -a | grep tftp? ? ? --查看是否啟動成功,可以看到udp 0 0 *:tftp *:*



VMware虛擬機中的ubuntu硬盤擴容


1、通過vmUI界面進行擴容基本上是不行的,至少在我的版本上是這樣,各種灰色按鈕,各種出錯;并且,界面擴容失敗后若打不開虛擬機,不要慌,只要你擴容之前的那個硬盤文件(我的是ubuntu64.vmdk,全編一個android項目后39G)還在,基本上是可以恢復的,一定要有耐心喲。另外,如果不是服務器級的硬盤,就不要使用快照了,感覺這個功能很坑爹,非常吃硬盤不說,關鍵是當它吃完你的硬盤后,你想刪除快照,對不起,您的硬盤已滿,請預留70G空間再刪除。于是你這時只有一種選擇,就是刪掉整個虛擬機。ps:不要試圖暴力刪除快照,如:刪快照到一半時取消,這樣會照成你的虛擬機永遠進不去也恢復不了,這會使得你在刪除整個虛擬機之前喪失備份關鍵數據的唯一機會。筆者經歷了災難性的數據損失,完全是血的教訓。

下面是使用命令行工具擴容。使用vmware提供的命令行工具vmware-vdiskmanager.exe,在windows下運行cmd,轉到vmware安裝目錄,vmware-vdiskmanager.exe可以查看幫助。輸入如下命令擴容:vmware-vdiskmanager -x 160Gb "D:\VMware\WinXP\myUbuntu.vmdk"。注:此時要擴容的系統不能在運行,參數 -x表示要擴展虛擬機的硬盤空間,緊隨其后的數字是要擴展到的大小。最后是制定要操作的虛擬機磁盤的具體文件。要是路徑名中有空格,必須以雙括號括起來。

??

?

2、重啟虛擬機,發現虛擬機的硬盤是變成50G了,但進入Ubuntu系統后,用df -ah查看發現硬盤還是原先那么大。接下來要分區、指定文件系統,ubuntu才能識別。

?

3、分區。以root權限進ubuntu

fdisk -l,打印當前磁盤分區表,這時我們可以看到磁盤總量的確增加到了前面設置的大小,但是分區還是只有那幾個原有的分區。

fdisk /dev/sda ? ? ? ? sda就是經過擴容的SCSI硬盤,IDE類型的硬盤對應為hda,這個命令告知下面對該硬盤進行操作。

m,列出幫助

n,添加新分區

p,創建主分區

3,或直接回車選擇默認分區號,應該也是3

直接回車,采用默認Start值,此處不選擇默認值會浪費空間

再回車,采用默認End

注意!!此時注意看清end - start的大小,如果只有很小的一段空間,需要再添加一個分區,按上述步驟執行,NP,回車

v,檢查為分配磁盤大小,若是只有幾M或更小則成功。

w,保存并退出,分區完畢

重啟ubuntu

?

4、格式化新添加的分區:

mkfs -t ext3 /dev/sda3

?

5、掛載該分區:

手動掛載:sudo mount /dev/sda3? /mnt/sda3?表示將該新分區掛載到/mnt/sda3/這個目錄下。注,手動掛載的信息記錄在/etc/mtab

或者開機自動掛載,修改文件:gedit /etc/fstab,添加一行

/dev/sda3? ? /mnt/sda3? ? ext3 ? defaults,? ? ? ? 0 ? ? ? ? 1

到此便可以使用新分區了,df -ah查看結果

?

6、使用新分區

現在,硬盤中多出來的這80G空間,只有在/dev/sda3下才能用,在其它地方,使用的依然是system分區——也就是原來的那80G。但我要在其它地方存文件怎么辦呢,可以用link來解決——把新分區中的內容映射到某個舊分區上,這樣占用的新分區的空間,看起來確是存在舊分區某個你需要的位置。

命令例子:

mv /source/juice /mnt/sda3/source
ln -s /mnt/sda3/source/juice /source

這樣,就可以像原來那樣在/source/juice下做任何操作了,而它們實際發生在/mnt/sda3/source/juice下。

?

//-------------------------------------------------------------------------------------------------------------

?

?

fdisk -l? 指令顯示出當前分區中有extended類型的大容量分區,:

[root@edes02 ~]# fdisk -l

Disk /dev/sda: 1979.1 GB, 1979119894528 bytes
255 heads, 63 sectors/track, 240614 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2135c370

Device Boot Start End Blocks Id System
/dev/sda1 1 5 40131 de Dell Utility
Partition 1 does not end on cylinder boundary.
/dev/sda2 * 6 267 2097152 c W95 FAT32 (LBA)
Partition 2 does not end on cylinder boundary.
/dev/sda3 267 330 512000 83 Linux
Partition 3 does not end on cylinder boundary.
/dev/sda4 330 240615 1930084160 5 Extended
Partition 4 does not end on cylinder boundary.

?

則可用以下命令直接擴容:

lvextend -L +100G /dev/mapper/VolGroup-lv_root

/dev/mapper/VolGroup-lv_root

其中/dev/mapper/VolGroup-lv_root是我的主分區

?

擴容成功提示:

resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 4, new_desc_blocks = 35
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 144179200 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 144179200 blocks long.

?

現在查看分區:

[root@edes02 ~]# df -lh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root 542G 27G 488G 6% /
tmpfs 16G 26M 16G 1% /dev/shm
/dev/sda3 485M 40M 421M 9% /boot
/dev/mapper/VolGroup-lv_home 79G 29G 46G 39% /home




Ubuntu 14.04NFS安裝配置

發表于2014 7 21

參考:http://www.linuxidc.com/Linux/2013-08/89154.htm

1、執行命令:sudo apt-get install nfs-kernel-server ;

2、執行命令:mkdir /home/jacobxu/nfs-jacoxu建立一個nfs服務的專有的文件夾;

3、建立好文件夾后,接著執行命令:sudo vi /etc/exports配置nfs;

4、在文章的最后一行添加:/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)
/home/jacobxu/nfs-jacoxu *(rw,sync,no_root_squash,no_subtree_check)這一行的含義是:
/home/jacobxu/nfs-jacoxu:與nfs服務客戶端共享的目錄,這個路徑必須和你前面設置的文件的路徑一致!
*:允許所有的網段訪問,也可以使用具體的IP
rw:掛接此目錄的客戶端對該共享目錄具有讀寫權限
sync:資料同步寫入內存和硬盤
no_root_squashroot用戶具有對根目錄的完全管理訪問權限。
no_subtree_check:不檢查父目錄的權限。

5、修改完上述配置文件保存退出。

6、執行命令:sudo /etc/init.d/rpcbind restart重啟rpcbind 服務。nfs是一個RPC程序,使用它前,需要映射好端口,通過rpcbind設定。

7、執行命令:sudo /etc/init.d/nfs-kernel-server restart重啟nfs服務。

8、掛載指令:
sudo mount -t nfs 192.168.111.128:/home/jacobxu/nfs-jacoxu /nfs-jacoxu-node001/
到任意一臺服務器中執行掛載指令,則可以將指定ip服務器上的共享路徑,掛載到本地。

注:nfs只是一種文件目錄共享模式,以本地方式進行訪問。而HDFS是一種分布式的文件系統,能夠在服務器中進行數據的負載均衡。

9、開機自動掛載:
上述指令 sudo mount -t nfs 192.168.111.128:/home/jacobxu/nfs-jacoxu /nfs-jacoxu-node001/寫到 /etc/rc.local文件中

附錄:NFS常用參數如下:
ro 只讀訪問
rw 讀寫訪問sync 所有數據在請求時寫入共享
async nfs在寫入數據前可以響應請求
secure nfs通過1024以下的安全TCP/IP端口發送
insecure nfs通過1024以上的端口發送
wdelay 如果多個用戶要寫入nfs目錄,則歸組寫入(默認)
no_wdelay 如果多個用戶要寫入nfs目錄,則立即寫入,當使用async時,無需此設置。
hide nfs共享目錄中不共享其子目錄
no_hide 共享nfs目錄的子目錄
subtree_check 如果共享/usr/bin之類的子目錄時,強制nfs檢查父目錄的權限(默認)
no_subtree_check 和上面相對,不檢查父目錄權限
all_squash 共享文件的UIDGID映射匿名用戶anonymous,適合公用目錄。
no_all_squash 保留共享文件的UIDGID(默認)
root_squash root用戶的所有請求映射成如anonymous用戶一樣的權限(默認)
no_root_squas root用戶具有根目錄的完全管理訪問權限
anonuid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的UID
anongid=xxx 指定nfs服務器/etc/passwd文件中匿名用戶的GID




?嵌入式nfs問題解決總結?


剛開始用的ubuntu10.04,無論如何搞都不成功,最后無奈選擇 fedora14nfs成功,現記錄如下:

1 如果沒有安裝nfs則安裝nfs,每種發行版linux安裝方法不同

2 改寫 /etc/exports文件,我增加了一行? /root *(sync,rw,no_root_squash)

sync,rw,no_root_squash的意思可以網上查一下,直接搜 nfs配置,多點一個就有介紹了

3 開啟nfs

fedora下開啟方法 service nfs start? /status/stop/restart

4 保證開發板,WIndows(宿主機)linux(虛擬機)能夠互相ping通,注意關閉Windows防火墻及federo的防火墻及SELinux功能

5 開發版上找載NFS,這一步如果這樣:mount -t nfs 192.168.1.106:/root share這樣執行不成功,顯示

svc: failed to register lockdv1 RPC service (errno 111).
lockd_up: makesock failed, error=-111

把上述命令改為:mount -t nfs -o nolock 192.168.1.106:/root share?成功

說是 nfs mount默認是帶鎖的,所以要取消鎖,具體不懂




?關于mount nfs時-o nolock的問題?


?需要將在linux里交叉編譯好的程序放在arm上運行,所以首先要將程序copyarm上,選擇了nfs

?? ? ? 但在armmount nfs的時候遇到了失敗的情況:


?? ? ? 在網上查找解決方案:

? ? ? ? nfs mount 默認選項包括文件鎖,依賴于portmap提供的動態端口分配功能。
? ? ? ? 解決方法:kill文件鎖(lockd)或者mount -o nolock

?

? ? ? ? 于是嘗試mount -o nolock -t nfs 192.168.1.24:/home/test /mnt/nfs,正常工作。







Ubuntu 14.04 修改密碼


安裝完Ubuntu 14.04后默認是沒有主動設置root密碼的,也就無法進入根用戶。

  1、用當前登錄用戶打開終端,在終端輸入命令 sudo passwd,輸入當前用戶的密碼然后回車


?

  2、會提示輸入新密碼,輸入完成后回車

  3、然后提示再輸入一次新密碼以確認,然后回車,設置成功

  linuxidc@ubuntu:~$ sudo passwd

  [sudo] password forlinuxidc:

  輸入新的 UNIX 密碼:

  重新輸入新的 UNIX 密碼:

  passwd:已成功更新密碼

  linuxidc@ubuntu:~$

  注意:這個新密碼就是root的密碼,可以與當前用戶的密碼不同。

  在終端中輸入 su root,然后輸入root的密碼,驗證成功即可切換到root用戶。在root用戶下做完操作后,用exit命令即可退出root用戶,退回當前登陸用戶。





ubuntu 14.04 install java8? Eclipse

1、下載JDK

從官網下載jdk8

jdk-8u45-linux-i586.gz

2、解壓
$ tar -zxvf jdk-8u45-linux-i586.gz
解壓出來是一個jdk1.8.0_45文件夾
3、將文件夾移動到安裝目錄
$ sudo mv jdk1.8.0_45 /usr/local/

或者:

sudo tar xzvf jdk-8u45-linux-i586.gz -C /usr/local

4、配置環境變量 ,更改/etc/profile文件

? sudo gedit /etc/profile

?? ? ? ? 在文件最后加上如下幾行:

export JAVA_HOME=/usr/local/jdk1.8.0_45
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

5、更改默認JDK配置選項 ,依次執行如下命令

?sudo update-alternatives? --install? /usr/bin/java java /usr/local/jdk1.8.0_65/bin/java 300

sudo update-alternatives? --install? /usr/bin/javac javac /usr/local/jdk1.8.0_65/bin/javac 300

sudo update-alternatives? --install? /usr/bin/jar jar /usr/local/jdk1.8.0_65/bin/jar 300
sudo update-alternatives? --install? /usr/bin/javah javah /usr/local/jdk1.8.0_65/bin/javah 300

sudo update-alternatives? --install? /usr/bin/javap javap /usr/local/jdk1.8.0_65/bin/javap 300


eclipse官網下載壓縮包? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

下載地址:http://www.eclipse.org/downloads/


解壓縮到/usr/local ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

sudo tar xzvf eclipse-standard-luna-R-linux-gtk.tar.gz -C /usr/local

tar-C參數指定了文件解壓后所在的目錄








本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/383304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383304.shtml
英文地址,請注明出處:http://en.pswp.cn/news/383304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

c++多態--2(計算器,純虛函數和抽象類)

為什么要用多態 早期方法不利于擴展開閉原則 開閉原則 對擴展開放 對修改關閉利用多態實現—利于后期擴展,結構性非常好,可讀性高,效率稍微低,發生多態內部結構復雜 多態成立的條件 又繼承 子類重寫父類虛函數的函數&#xff1…

使用Automake和Autoconf生成Makefile

automake 所產生的 Makefile 除了可以做到程序的自動編譯和鏈接 外,還可以用來生成各種文檔(如manual page、info文件),可以將源代碼文件包裝起來以供發布。所以程序源代碼所存放的目錄 結構最好符合GNU的標準慣例。下面以hello.…

c++中多態---3(虛析構和純虛析構,向上類型轉化和向下類型轉化)

虛析構和純虛析構 虛析構virtual ~類名(){}類內聲明,類內實現解決問題:通過父類指針指向子類對象釋放時候不干凈的問題 純虛析構 寫法 virtual ~類名(){}0; 類內聲明 類外實現 如果出現了純虛析構函數,這個類也算是抽象類,不可…

嵌入式開發硬件知識札記

三態邏輯 1. 概念 三態指其輸出既可以是一般二值邏輯電路,即正常的高電平(邏輯1)或低電平(邏輯0),又可以保持特有的高阻抗狀態。高阻態相當于隔斷狀態(電阻很大,相當于開路&#xff…

《凡人修仙傳》中打斗場景(c++多態實現)

我們 要實現打斗場景,第一,我們需要有打斗的雙方,一個是英雄,一個是怪物,他們都有自己的屬性,比如攻擊,防御,血量。其次我們的英雄還會有武器。武器上有一些加成屬性,可以…

使用mp4v2將aac音頻h264視頻數據封裝成mp4開發心得

這陣子在搗鼓一個將游戲視頻打包成本地可播放文件的模塊。開始使用avi作為容器,弄了半天無奈avi對aac的支持實在有限,在播放時音視頻時無法完美同步。 關于這點avi文檔中有提到: For AAC, one RAW AAC frame usually spans over 1024 samples…

c++模板---1(模板概念,利用模板實現數組排序,函數模板調用規則)

什么叫泛型編程?1. 參數類型化。 2. 模板 模板概念 c提供了函數模板,所謂函數模板,實際上是建立一個通用函數,其函數類型和形參類型不具體制定,用一個虛擬的類型來代表。這個通用函數就成為函數模板。凡是函數體相同…

c++模板--2(模板機制,模板的局限性,類模板,類模板做函數的參數)

函數模板機制結論 編譯器并不是把函數模板處理成能狗處理任何類型的函數函數模板通過具體類型產生不同的函數編譯器會對函數模板進行兩次編譯,在聲明的地方對模板代碼的本身進行編譯,在調用的地方對參數替換后代碼進行編譯在編譯器編譯階段,…

arm-linux 交叉編譯 mp4v2

2014-09-23 14:44 1901人閱讀 評論(0) 收藏 舉報 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 1、下載mp4v2的源代碼(http://code.google.com/p/mp4v2/downloads/list)mp4v2-2.0.0.tar.bz2 2. 進入相應目錄 ./configu…

c++模板---3(類模板碰到繼承問題,類模板類外實現,類模板與友元函數)

類模板碰到繼承問題 基類如果是模板類&#xff0c;必須讓子類告訴編譯器 基類中的T到底是什么類型 如果不告訴&#xff0c;那么無法分配內存&#xff0c;編譯不過 利用參數列表class Child :public Base<int> #include<iostream>using namespace std;template&l…

Linux USB札記

嵌入式linux內核添加USB模塊&#xff08;U盤&#xff09;支持 使用menuconfig工具進行配置 1、Device Drivers->SCSI device support->SCSI disk support此選項必須勾選 2、Device Drivers->USB support->Support for Host-side USB 此選項選中后會出現子菜單&…

c++實現任意類型數組類的封裝

MyArray.hpp #pragma once #include<iostream> #include<string> using namespace std; template<class T>class MyArray { public://構造explicit MyArray(int capacity) //防止隱式類型轉換&#xff0c;防止MyArray arr 10{this->m_Capacity capacity…

Linux內核配置選項 (經典學習)

轉載地址http://book.csdn.net/bookfiles/972/10097230254.shtml 2.5 Linux內核配置選項 下面以最新的Linux 2.6.20內核為例&#xff0c;介紹比較常用的一些Linux內核配置選項&#xff0c;其他選項讀者可以參考系統提供的幫助信息。 需要說明的是&#xff0c;在內核配置中&am…

深入理解linux系統下proc文件系統內容

另外&#xff0c;可以參考這個http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html 內容摘要&#xff1a;Linux系統上的/proc目錄是一種文件系統&#xff0c;即proc文件系統。 Linux系統上的/proc目錄是一種文件系統&#xff0c;即proc文件系統。與其它常見…

c++中的異常--1(基本概念, c語言中處理異常,c++中處理異常,異常的基本使用,棧解旋)

異常基本概念 異常處理就是處理程序中的錯誤&#xff0c;所謂錯誤是指在程序運行的過程中發生的一些異常事件&#xff08;如&#xff1a;除0退出&#xff0c;數組下標越界&#xff0c;所要讀取的文件不存在&#xff0c;空指針&#xff0c;內存不足等等&#xff09; c語言中處…

RGB、YUV和YCbCr

之前對RGB、YUV和YCbCr一直沒有清晰的理解和認識&#xff0c;今天打算做一個小結&#xff0c;結合網上的文章談談自己的看法&#xff0c;也希望有機會看到這篇文章的人能指點一二&#xff0c;相互交流&#xff0c;共同進步。 首先要說明&#xff0c;上述的RGB、YUV和YCbCr都是人…

c++中的異常---2(異常接口聲明,異常變量的生命周期,異常的多態使用)

異常接口聲明 為了加強程序的可讀性&#xff0c;可以在函數聲明中列出可能拋出異常的所有類型&#xff0c;例如&#xff1a;void func() throw(A,B,C);這個函數func能夠且只能拋出類型A,B,C及其子類的異常如果在函數聲明中沒有包含異常接口聲明&#xff0c;則此函數可以拋任何…

c++中的異常---3(系統標準異常庫,編寫自己異常類)

系統標準異常庫 #incldue out_of_range 等… #include<iostream>#include<string>using namespace std;//系統提供標準異常#include<stdexcept>class Person{public:Person(string name, int age){this->m_Name name;//年齡做檢測if (age<0 || age&g…

H.264中IDR幀和I幀區別

IDR&#xff08;Instantaneous Decoding Refresh&#xff09;--即時解碼刷新。I和IDR幀都是使用幀內預測的。它們都是同一個東西而已,在編碼和解碼中為了方便&#xff0c;要首個I幀和其他I幀區別開&#xff0c;所以才把第一個首個I幀叫IDR&#xff0c;這樣就方便控制編碼和解碼…

c++中的IO流(流的概念和流類庫的結構,標準的輸入輸出流)

流的概念和流類庫的結構 程序的輸入指的是從輸入文件將數據傳送給程序&#xff0c;程序的輸出指的是從程序將數據傳送給輸出文件 c輸入輸出包含以下三個方面的內容 對系統指定的標準設備的輸入輸出。即從鍵盤輸入數據&#xff0c;輸出到顯示器屏幕&#xff0c;這種輸入輸出稱…