#nfsroot
Explore tagged Tumblr posts
gozealouscloudcollection · 6 years ago
Text
Linux Lab 發布 v0.2-rc1 支持國產龍芯處理器
如果您想學習 Linux 0.11 內核和 Linux X86 彙編語言,也可以訪問另外兩套 Lab,即 Linux 0.11 Lab 和 CS630 Qemu Lab。
版本更新
繼 6 月 28 日發布 v0.1 之後,Linux Lab 終於迎來 v0.2 的第一個 rc 版本:v0.2-rc1,該版本除了修復部分功能完善文檔外,新增了對國產龍芯處理器的全面支持;為所有架構添加了外部交叉編譯器支持;還促成了碼雲新增三大資源(qemu、uboot 和buildroot )的每日更新鏡像。
該版本相比 v0.1 有 98 筆修改,其中主要更新如下:
攜手龍芯實驗室,以獨立插件的方式新增龍芯全面支持。
插件地址:https://gitee.com/loongsonlab/loongson。
促成龍芯開放全系的 Qemu 模擬器,方便各大操作系統、工具、應用廠商進行龍芯軟件開發。
完美兼容 Linux Lab 各類操作,可進行龍芯 Qemu、Linux 和 Pmon bootloader 的開發。
分別為龍芯三大系列新增了 ls1b, ls2k, ls3a7a 三個實例。其中 ls1b 直接支持 v5.2 內核,後兩個目前支持 v3.10,即將支持 v5.2。
攜手碼雲,在國內新增 Qemu、U-boot 和 Buildroot 的每日鏡像
Qemu 鏡像:https://gitee.com/mirrors/qemu
U-boot 鏡像:https://gitee.com/mirrors/u-boot
Buildroot 鏡像:https://gitee.com/mirrors/buildroot
Linux Lab 即日起可��步使用最新 Qemu、U-boot 和 Buildroot,方便大家做開發和 Upstream。
為所有 8 大平台(含32/64位)新增外部交叉編譯器支持,每個平台有 2 個以上交叉編譯器可選
更豐富的交叉編譯器選擇和配置,make gcc-list, make gcc CCORI=internal
更靈活的交叉編譯器下載和切換,make gcc, make gcc-switch CCORI=bootlin
正攜手國防科大鏡像站、蘭大鏡像站建設交叉編譯器的國內鏡像,歡迎打卡:mirrorrequest,“工具鍊是軟件工業的基礎設施”,做國內鏡像是利國利民的好事,其他有資源的高校,歡迎跟進並聯繫本人(見文末微信)。
修復部分功能並完善使用文檔
文檔新增關於 poweroff、toolchain、vim/bash 快捷鍵、modules、fullscreen、qemu 等內容
新增 CTRL+Home/End 切換 vim 多窗口,規避 CTRL+w 按鍵與瀏覽器關閉事件衝突的問題
其他小調整
新增 U-boot 對最新版本編譯器的支持
新增 gdb-multiarch 調試支持,避免為每個平台安裝一個 gdb
新增 features 管理:nfsroot, initrd
新增 nfsroot 對多網卡平台的支持
新增類比 scripts/extract-ikconfig 的小工具:tools/kernel/extract-ikconfig
新增 Qemu、Buildroot、U-boot 和 Linux 的板級獨立子倉庫支持,更方便做 porting 和 upstream
新增 LD_LIBRARY_PATH 搜索路徑的自動配置
新增一個 C 語言的實例:examples/c/exeshare(如何製作一個可以執行的動態鏈接庫)
完善對有無 olddefconfig 編譯目標的判斷
修復內核配置完,編譯時又重啟配置的問題
新增 v5.0 rt 特性的實驗支持,即將增加 v5.2 rt 支持
新增 XXX_LIST,提示並檢查某板子各組件的當前支持情況
極速體驗
在非 Ubuntu 平台,請提前自行安裝好 docker:
$ git clone https://gitee.com/tinylab/cloud-lab.git
$ cd cloud-lab
$ tools/docker/run linux-lab
進去以後,打開控制台,敲入如下命令即可啟動一個板子:
$ make boot
極速體驗新增龍芯系列處理器的 Qemu + Linux:
$ pushd boards
$ git clone https://gitee.com/loongsonlab/loongson
$ popd
$ make list plugin=loongson
[ loongson/ls1b ]:
ARCH = mips
CPU ?= mips32r2
LINUX ?= v5.2
ROOTDEV_LIST ?= /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ loongson/ls2k ]:
ARCH = mips
CPU ?= mips64r2
LINUX ?= loongnix-release-1903
ROOTDEV_LIST := /dev/sda /dev/ram0 /dev/nfs
ROOTDEV ?= /dev/ram0
[ loongson/ls3a7a ]:
ARCH = mips
CPU ?= mips64r2
LINUX ?= loongnix-release-1903
ROOTDEV_LIST ?= /dev/null /dev/nfs
ROOTDEV ?= /dev/null
$ make BOARD=ls2k
$ make boot // 串口啟動,使用 initrd
$ make boot G=1 // 圖形啟動,使用 initrd
$ make boot ROOTDEV=/dev/nfs // 串口啟動,使用 nfsroot
關鍵特性
Linux Lab 具備如下特性:
支持 3 大操作系統(Windows、MacOS、Linux),可以輕鬆在這三大操作系統下使用。
支持 7 大處理器架構(X86、ARM、MIPS、PPC、Csky,Risc-V, Loongson),其中 Loongson 和 Csky 為國產處理器。
支持14+ 款開發板(i386/pc, x86_64/pc, arm/versatilepb, arm/vexpress-a9, ppc/g3beige, mips/malta, aarch64/virt, aarch64/raspi3, riscv32/virt, riscv64/virt, csky /virt, loongson/ls1b, loongson/ls2k, loongson/ls3a7a)。
支持 5 種登陸方式(docker, ssh, vnc,webssh, webvnc),可以本地訪問,也可以遠程訪問。
集成了 5 大組件(Qemu、U-boot、Buildroot、Linux、Toolchain),都有預編譯版本。
內置了 5 大平台,32 位和 64 位共 10 個 Hello World 彙編語言例程,見 examples/assembly。
可以學習處理器指令集、Qemu、Shell、彙編、C、Linux 內核、嵌入式 Linux。
支持 Debugging 和 Testing。
更多信息
項目首頁
Homepage: http://tinylab.org/linux-lab
項目倉庫
Gitee: https://gitee.com/tinylab/linux-lab
Github: https://github.com/tinyclub/linux-lab
項目插件
C-sky(中天微):https://gitee.com/tinylab/csky
Loongson(龍芯):https://gitee.com/loongsonlab/loongson
演示視頻
基本用法:Linux 快速上手
學習彙編:AT&T 彙編上手
學習Uboot:Uboot 快速上手
ARM 開發:在 arm/vexpress-a9 上運行 Ubuntu 18.04 LTS
Risc-V開發:使用 riscv32/virt 和 riscv64/virt 開發板
龍芯開發:在 Linux Lab 上使用龍芯 ls2k 平台
特性開發:一條命令測試和體驗某個內核特性
模塊開發:一條命令配置、編譯和測試內核模塊
內核調試:所有板子的調試功能自測視頻
內核測試:所有當前預置板子的啟動過程自測視頻
該項目完全開源,以 GPL 2.0 協議發布,歡迎所有高校、企業、個人用戶使用或者參與開發。
聯繫我們
(掃碼聯繫項目作者)
.
from Linux Lab 發布 v0.2-rc1 支持國產龍芯處理器 via KKNEWS
0 notes
celltee · 6 years ago
Text
Dopra Linux nfs mount example
WAP(Dopra Linux) # mount -t nfs -o nolock,nfsvers=3,tcp 192.168.8.2:/nfsroot /mnt/nfs
0 notes
dontpanicit · 14 years ago
Text
NFSroot depuis virtualBox via boot.iso
Bonjour à tous et bienvenu pour le tuto de la semaine!
Il faut le prendre en complément du tutoriel sur l'installation en NFSroot, par conséquent, je ne reviendrai pas sur la partie installation et configuration du serveur (sauf à un moment précis mais la modification est à la fois mineure et essentiel donc restez attentif).
Ok, nous y voila.
Donc la méthode est la suivante : On va commencer par créer une image .iso qui va en fait servir d'alternative au boot grub, car ce dernier est non seulement invivable à installer seul sur une VM, mais de plus pause d'important problèmes au lancement du NFS (avalanche d'erreurs, montage partiel, erreur "need a path" et j'en passe).
J'espère que vous n'avez pas oublié la partie de changement du /etc/initramfs-tools/initramfs.conf dans le premier tuto, car c'est impératif. Si ce n'est pas le cas, retournez sur l'ancien et recréez la initrd.img correctement.
Etape 1 : Création de l'image boot.iso
En fait basiquement, on va réutiliser les fichiers vmlinuz et inird.img préconfigurés du NFS pour créer une image correctement configuré. Pour ce faire, il faut donc créer un dossier à la racine (pour plus de rapidité et ne pas péter un câble avec les chemins d'accès) qui sera donc /iso.
A l’intérieur il faut créer un dossier "linux" pour se retrouver donc avec l'architecture suivante :
/iso    |    linux
Ensuite, on va placer nos deux images vmlinuz et initrd.img dans le dossier linux. Ce sont les images que l'on avait utilisé dans le tuto précédent pour grub (ils étaient à l'époque stocké dans /boot/LAN du disque sur le poste client) On va juste changer le nom de l'initrd : mv initrd.img initrd
On va maintenant créer le fichier qui va servir de configuration à l'image iso :
cd /iso touch isolinux.cfg vi isolinux.cfg Collez y ça (arrangé à votre sauce) : default linux   label linux   kernel /linux/vmlinuz   append initrd=/linux/initrd root=/dev/nfs ip=dhcp(ou les paramètres IP de votre réseau local) nfsroot=(adresse_de_votre_serveur):(chemin_d'accès_vers_votre_racine_nfsroot),rw,nolock
Ça vous rappelle des choses? C'est normal! On dirait le lanceur de Grub2 dans l'autre tuto. C'est pas pour rien hein? Sauf que lui en fait il va lancer les éléments pour que le .iso soit correcte.
Donc une fois ça fait, on va aller fouiner dans notre ubuntu embarqué sur le serveur pour aller y télécharger isolinux.bin.
scp (nom_d'utilisateur_ssh)@(adresse_du_serveur):/(chemin_d'accès_vers_votre_racine_nfsroot)/usr/lib/syslinux/isolinux.bin /iso/
voila, on y est presque, maintenant on va créer l'image boot.iso (notez, il faut être dans /iso (faites un cd /iso pour être sur):
mkisofs -R -V "NFS Boot" -o ../boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
Voila, maintenant que votre boot.iso fait pour le nfs est créé, on va configurer VirtualBox pour démarrer la machine.
Etape 2 : Configuration de VirtualBox
NB : Désolé pour les fans de VirtualBox OSE, mais il n'y a que la VirtualBox 4.1.4 qui permet la connexion par pont, et donc de permettre à la machine de démarrer avec les bonnes informations réseau. D'ailleurs, sous linux, il est possible que VirtualBox provoques de petites erreurs au démarrage, et demande l’emploi de certaines commandes setup. Faites les, c'est simplement certains modules de VirtualBox qui doivent être réinitialisés à chaque démarrage. C'est un bug connu. Donc, lancez VirtualBox et créez une nouvelle machine, basé sous Linux Ubuntu. Donnez lui un peu de mémoire (minimum 512Mo, et encore, vous allez galérer. L'optimal c'est 1Go dédié de toute façon, et c'est d'autant plus valable pour une VM). Ensuite dans l'onglet réseau, sélectionnez "Accès par pont" et l'interface de votre carte réseau correcte (par défaut : eth0).
Ensuite allez dans "Stockage" et montez votre image boot.iso dans le lecteur CD. Tien, maintenant essayez de booter. On pourrait se dire "Boarf, le serveur est configuré pour partager avec toutes les IP de mon domaine réseau (souvenez vous du 192.168.1.* qui couvre tout le domaine), il devrait se monter correctement". Miracle, votre noyau se monte correctement, les procédures se lancent, et là BAM! Oh? Etrange! nfs-premount : acces denied error. Patatra, je vois d'ici vos rêves et vos espoirs disparaître dans vos yeux, et la vie devenir plus sombre à chaque loop de "acces denied".
PAS DE PANIQUE Il y a des gens comme moi pour se prendre la tête avec ce genre de souci, et vous apporter la solution sur un plateau! En fait, je n'ai pas tout a fait compris pourquoi, mais même dans le cas ou l'IP donné par le DHCP, accompagné de son masque et de sa passerelle, ne possède quand même pas les accès vers le serveur nfs.
Pour corriger ce problème, il faut vous rendre sur votre serveur, dans le fichier /etc/exports. A l'époque, on avait marqué ça :
/srv/ubuntu IpdesClients(pour moi c’est 192.168.1.* pour couvrir toute la plage IP)(rw,no_root_squash,async,subtree_check) Et bien il faut rajouter la ligne suivante : /srv/ubuntu IPdelaVM/IDdumasque(24 pour 255.255.255.0, sinon faite la conversion)(rw,no_root_squash,async,subtree_check)
relancez votre serveur nfs
sudo service nfs-kernel-server reload Et maintenant, sur votre PC client, relancez votre machine. Tadaaaaaaaa! Ca marche. Cependant, pour les 11.04 et ulterieures, Unity nécessitant une accélération matérielle, il chargera l'ancienne interface gnome par défaut. Je n'ai pas réussis à stabiliser ça, mais bon, ça ne rentrait pas dans le cadre de ma demande. D'ailleurs, l'installation de ce genre de chose tien plus du bricolage qu'autre chose, ce ne sont pas des machines très fiables, par conséquent, je conseil tout de même le Dual Boot de l'ancien tuto (a moins que ce soit pour une utilisation ponctuelle). Voila, j'espère que ce tuto aura servi. A plus les gens :).
22 notes · View notes
dontpanicit · 14 years ago
Text
Installation d'un système nfsroot et le lancer via Grub2
Comment créer un système nfsroot linux ubuntu avec un bootloader grub2 sur machine locale. La première idée qu’on a quand on cherche à monter un système linux en réseau, est de tout lancer par le système de PXE. Mais dans certains cas, le PXE peut être endommagé, où ne peux être reconnu au démarage par la carte mère. Dans ce genre de cas, il est nécessaire de gérer donc en local le chargement de certains fichiers indispensables au boot.
Ici je vais expliquer la marche à suivre pour pouvoir lancer un linux, stocké sur un serveur, sur une machine locale.
Dans notre cas, nous aurons aussi à monter les partitions de dossiers personnels, issus de l'ancien système en place (à savoir une partition NFS stocké sur un autre serveur local).
Première Etape : Installation du serveur debian.
Pour commencer, on doit avoir une machine de type serveur vide, que ce dernier soit connecté à Internet ainsi qu'une version CD de Debian.
Pour mon cas, Debian 6.0.
Pour commencer, évidement, on installe et configure debian sur la machine serveur. Il faut cependant le configurer selon nos besoins :
-Partitions :
-Une partition Physique « /boot » (512 Mo)
Elle stockera le système de boot du serveur. Debian étant le seul système installé sur le serveur, il est inutile d'en donner plus.
-Une partition Physique « / » (512 Mo)
C'est la racine de debian. Il faudra veiller à ce qu'elle ne soit pas trop chargée.
-Une partition Swap (2Go)
La swap est votre mémoire vive sur disque. En gros elle permet de délester la RAM en cas de surcharge. De façon général, on en configure le double de votre RAM réelle (i.e. Pour 1Go RAM, on met 2Go SWAP)
-Une partition LVM
Une partition LVM est une partition physique qui contient plusieurs partitions virtuelles. En effet, un disque dur ne peut être partitionné qu'en 4 morceaux physiques. En temps normal, sur les systèmes d'utilisations quotidiens comme Windows ou Ubuntu, quand l'on dépasse cette limite, le système prend sur lui de gérer les nouvelles partitions en LVM. Ici sous débian, c'est nous qui allons prendre ça en charge. Voici donc les partitions virtuelles contenues dans le LVM :
-Une partition « ubuntu » (16 Go)
Cette partition sera en fait la racine de notre système Ubuntu. De fait, elle contiendra aussi tout les programmes que l'on voudra installer sur le systèmes. Dans le cadre d'une utilisations de programmes simples de développement sous linux, 16Go est donc suffisant.
-Une partition « log » (4 Go)
Cette partition aura l'emplacement /var/log. C'est a dire qu'elle contiendra les logs du serveur. Il est important à noter que la partition doit avoir comme paramètres : nodev, nosuid et noexec, afin d'éviter tout scripts hostiles qui pourraient se retrouver dans les logs, et exécutés de manière non autorisé.
-Une partition « var » (2 Go)
Inutile d'épiloguer sur la partition de var.
-Une partition « usr » (2 Go)
Idem.
-Une partition « tmp » (1 Go)
Idem.
-Une partition « home » (4 Go)
La taille de votre home dépend totalement de vous. En effet, selon l'utilisation que vous voulez avoir de votre serveur, il nécessitera plus ou moins de place. Ici j'ai placé 4Go, à vous de voir.
NB : Ce sont tous des ext4 (excepté le Swap)
Une fois les partitions créées, il faut maintenant configurer leurs points de montages respectifs. Dans mon cas, j'avais oublié de le faire à la création, ce qui pose d'assez gros problèmes par la suite, donc je vous conseille de ne rien oublier à ce moment là.
Donc, pour les points de montages, l’intérêt c'est que la plupart sont radicalement explicites.
Les partitions logiques virtuelles vont avoir un nom bien particulier. Chez moi elles sont sys/home, sys/log etc...
Bref, donc les points de montage sont les suivants :
ubuntu → /srv/ubuntu
var → /var
log → /var/log (nodev,noexec,nosuid)
tmp → /tmp
home → /home
usr → /usr
Voila, une fois ces points de montages terminés, vous pouvez terminer l'installation de debian. Pensez à désactiver toutes les extensions (DHCP, Apache etc...) si vous n'en avez pas de besoins précis. Nous en utiliserons par principe on les téléchargera directement sur Internet afin d'avoir les dernières versions.
Donc, Debian est installé, on reboot, on tente un « mount » dans la console pour veiller à ce que les partitions soit bien montées, et si c'est ok, on passe a l'étape suivante.
Dans le cas où vous auriez oublié de configurer les points de montage :
Pas de panique
Ce qu'il y a de bien sous Linux, c'est qu'il y a toujours 50 façon de récupérer une erreur (mais 100 façon de les provoquer soit même).
Suivez simplement point par point cette manipulation.
Tout d’abord, si l'on a oublié de monter les partitions pour l'installation, il a forcément lui même créé et remplis les dossiers /var, /var/log etc... Problème, vous n'aviez pas réservé énormément de place pour la racine, et cette dernière, si vous continuez dans cette voie, va vite saturer.
Heureusement, j'ai une parade :
On va commencer par aller chercher nos partitions, car elle sont bien là, dans /dev/. Chez moi, elles sont toutes dans /dev/sys/ car le groupe LVM avait été nommé ainsi. Si vous ne vous souvenez plus comment vous avez créé votre groupe, vous pouvez toujours faire un grep home dans le dossier /dev, il vous trouvera votre partition dans ce fatras.
Une fois votre partition trouvé, il faut la monter, mais attention, pas de var sur le /var actuel, sinon elle sera invisible car les deux dossier (l'actuel /var et la partition var) vont se mêler.
Par conséquent, il faut y aller élément par élément.
Je vais expliquer en détail pour /var, et /var/log, il faudra ensuite l'appliquer pour les autres partitions.
NB : N’hésitez pas à vous faire une liste pour n'en oublier aucune.
Pour var :
On monte var dans /mnt.
mount /dev/sys/var /mnt
Ensuite on copie le contenu du /var original dans la partition monté.
cp /var /mnt
On démonte /mnt.
umount /mnt
Ensuite, on va monter la partition log.
mount /dev/sys/log /mnt
On copie son contenu.
cp /var/log /mnt
Et on démonte.
umount /mnt
Et on fait de même pour tout les autres.
Et voilà. Maintenant, que l'on a terminé de faire toutes nos copies, c'est là que ça va se corser, et qu'il faut être ingénieux. On aura beau configurer le fstab pour que chaque partitions prennent leur place au démarrage, elles ne feront pas plus que cohabiter, sinon marquer, les fichiers toujours présents dans les dossiers d'origine /var etc... Seulement, ces dossiers sont important, interdiction de les supprimer dés maintenant en se disant qu'ils seront de toute façon remplacés par leurs homologues partitionnés lors du redémarrage, et ceci pour plusieurs raisons ;
-Linux va vous vomir dans le crâne car les dossiers contiendront encore actuellement des processus en cours, et même si vous forcez la suppression de la plupart, les processus en cours eux, refuseront de se supprimer. C'est d'ailleurs une très bonne façon aussi de faire planter son serveur, c'est aussi suicidaire que de faire un « sudo rm -rf / ».
-Parce que vous avez peut être omis de copier quelque chose, ou qu'un fichier s'est mal copié, bref, il peut s'être passé n'importe quoi et cette solution couperai court à toute position de retrait en cas de problème.
Il va donc falloir être plus ingénieux : Une fois le redémarrage effectué, et vos partitions bien montées (vérifier avec un mount), vous allez monter votre partition / sur le /mnt.
mount / /mnt
Pourquoi ? Et bien parce qu'en montant la racine, celle ci va être montée indépendamment de toutes les autres partitions qui sont montées au système, et donc laisser apparaître les anciens /var, /home etc... d'origine.
Il vous suffira ensuite d'en supprimer les contenus (attention à ne pas supprimer les dossiers, sinon les points de montages ne pourront se faire si le dossier d'arrivée n'existe pas et ça puera la kernel panic) puis à démonter votre / du /mnt. Une fois le serveur de nouveau redémarré, vous aurez alors vos partitions correctement montée (mais aurez perdu 2h de travail par rapport à ceux qui ont penser à régler les partitions des l'installation, donc pensez y!)
Deuxième Étape : Installation du linux en debootstrap et chroot.
Avant-propos sur le debootstrap et le chroot.
Ces deux outils sont des outils très puissants, à manipuler avec précaution. Debootstrap permet d'installer un système Linux/UNIX au sein d'un autre système Linux/UNIX. Son utilité réside dans le fait d'avoir deux système distincts, sans avoir nécessairement besoin d'installer une gestion de machines virtuelles. De plus, grâce au debootstrap, il est inutile d'avoir un .iso de linux, un simple acces aux mirroirs via internet suffit. Le chroot est le complément élémentaire de debootstrap car il permet de prendre en main le système installé (l'application de chroot sur le dossier correspondant fera en sorte que la console deviendra alors la console de Ubuntu, et plus de debian).
Ici, nous allons installer via debootstrap, linux Ubuntu 11.04 à l’intérieur de notre partition /srv/ubuntu.
Installation de Ubuntu 11.04
Il faut commencer par installer sur Debian, les deux outils cité ci dessus. Jusqu'ici, rien de bien particulier. Il suffit de faire :
sudo apt-get install debootstrap dchroot
Une fois les deux outils installés, on passe aux choses sérieuses :
sudo debootstrap –-arch i386 'lsb_release -c -s' /srv/ubuntu http://archive.ubuntu.com/ubuntu/
notez ici que je sélectionne l'architecture du système linux, à savoir 32bits. Vous pouvez, si vous voulez, sélectionner un système en 64bits, si votre parc informatique (les ordinateurs qui seront amenés à démarrer sur ce linux) est 100% compatible 64bits. Pour éviter les problèmes de compatibilité, je vous conseil cependant de vous en tenir au 32bits, même si cette recommandation sera obsolète d'ici quelques courtes années (car le 32bit est condamné à mort d'ici 2038 http://fr.wikipedia.org/wiki/Bug_de_l%27an_2038, ainsi que son incapacité à prendre en compte une RAM supérieurs à 3,5Go tout les systèmes sont amenés à être remplacés par des 64bits).
NB : Debootstrap accepte pas seulement les URLs, il peut aussi se lancer à partir d'un fichier. Par conséquent, on est pas soumis à la dernière version en date, ici, publié par Ubuntu, mais on peut par exemple lui soumettre une béta ou autre. Attention cependant a ne pas se méprendre sur les architectures. Si on lui précise une architecture 32bits avec une image de linux amd64, il risque de ne pas aimer.
NB 11.10 : Debootstrap n'a pas encore été mis à jour pour accueillir la 11.10, Oneiric. Il faut donc créer un script spécial qui va quand même lui permettre d’accéder aux sources. Pour ça on va dans
cd /usr/share/debootstrap/scripts/
cp natty oneiric
Et maintenant vous pouvez lancer :
debootstrap --arch amd64 'oneiric' /srv/ubuntu/new/ http://archive.ubuntu.com/ubuntu/
Bref, ensuite, il faut charger certaines configurations communes de domaine de Debian jusqu'à Ubuntu. Pour ce faire on va balancer la commandes suivantes.
cp /etc/resolv.conf /srv/ubuntu/etc/resolv.conf
C'est trop anecdotique pour s'étaler dessus.
Ensuite, on va monter les partitions de /dev et de /proc depuis Debian jusqu'à Ubuntu. Ça permet de pouvoir prendre le contrôle de linux. En effet, dans l'état actuel, linux n'est pas capable de gérer ses processus et ses périphériques. En fait il est totalement impuissant. C'est pourquoi on va lui permettre d'utiliser les éléments de debian comme références.
sudo mount –-bind /dev /srv/ubuntu/dev
sudo mount -t proc /proc /srv/ubuntu/proc
Voila, linux est maintenant près pour sa prise en main. On va donc passer en chroot sur notre partition Linux fraîchement chargée (mais pas encore installée).
Pour ce faire, on va envoyer la commande suivante :
sudo chroot /srv/ubuntu
Et voilà, vous ètes dans Ubuntu. Pour faire courts, gardez à l'esprit que vous ètes à la racine de votre Ubuntu, et que donc, votre cd / vous affichera root@blahblah:/# mais qu'en réalité, du point de vue de debian, vous serez dans /srv/ubuntu. Et oui, ubuntu sera devenu la racine de votre Ubuntu.
On rajoute une partition en interne :
mount -t devpts devpts /dev/pts
Maintenant que l'on a accès a notre base Linux, il va falloir l'installer. Et oui, le debootstrap n'a fait que lui donner des éléments pour pouvoir tourner en chroot, mais votre distribution est encore loin d'être complète.
Donc une fois en chroot, et le contrôle total acquit, on installe donc Ubuntu.
Voici la serie de commande à balancer pour que l'installation se passe correctement :
apt-get update
apt-get install ubuntu-minimal ubuntu-standard ubuntu-desktop language-pack-fr language-pack-gnome-fr nfs-client
apt-get dist-upgrade
dpkg-reconfigure locales
dpkg-reconfigure console-setup
NB 11.10 : Oneiric instaure un nouveau système de gestion des services, nommé upstart. Ce dernier étant totalement incompatible avec chroot (Connexion au socket impossible), il faut donc le court-circuiter via les commandes suivantes pour terminer correctement l'installation.
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
C'est un bug connu qui je l'espère sera remédié rapidement. Une fois l'installation finalisée à 100% (c'est a dire que vous quittez le chroot) définitivement, il faudra supprimer ce court-circuit sinon votre système ne démarrera jamais. Voici les commandes de suppression
Dpkg-divert --remove /sbin/initctl
rm /bin/true
Normalement, au terme de ces commandes (et d'une attente de plus ou moins 30 minute, selon votre connexion et les capacités de la machine), le système linux est installé et fin prêt à démarrer. Seulement, pour le moment, il n'est pas configuré totalement pour le nfs, même si dans l'apt-get install, on lui a précisé nfs-client, il n'est pas configuré en natif pour pouvoir tourner avec.
Il va donc falloir modifier encore quelques détails très importants.
On va donc commencer par nommé le système Ubuntu en interne. On va lui donner le nom de « nfs-ub ». C'est important pour la suite de le nommer clairement.
Donc pour le nommer on fait :
echo « nfs-ub » > /etc/hostname
Ensuite, il faut configurer la boucle IP interne :
dans le fichier /etc/hosts :
127.0.0.1 localhost
127.0.1.1 nfs-ub
Le reste doit être inchangé.
On va ensuite configurer notre utilisateur principal. Il est impératif de conserver précieusement les identifiants donnés, car même si l'on possède un système de compte à l'origine, il va y avoir une étape de vide entre le démarrage final du nfsroot et son utilisation, et c'est durant cette étape que ce compte va servir. Pour ce faire on fait :
adduser NomDeCompte
usermod -G admin -a NomDeCompte
ensuite lancer visudo
et placer
%admin ALL=(ALL) ALL
Voila, à présent, le compte créé sera un compte admin de type root, ce qui permettra aussi de pouvoir appliquer facilement toutes les configuration en root.
Courage, on en voit le bout !
Maintenant on va configurer le fstab interne à Linux. Normalement, ce dernier est pour le moment vide, dans la mesure ou ce dernier s'est installé sans vraiment connaître ses partitions (via le chroot).
Nous allons donc fixer ça :
vi /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/nfs / nfs defaults 1 1 none /tmp tmpfs defaults 0 0 none /var/run tmpfs defaults 0 0 none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0
Maintenant que le fstab est configuré, il faut enfin placer Ubuntu en situation de se lancer en NFS. Comme dit plus haut, même si la version installé est une version NFS, elle ne se considère pas encore comme tel.
Il faut donc lui préciser.
Ça se passe dans le fichier :
vi /etc/initramfs-tools/initramfs.conf
à la ligne
BOOT=local
changer en
BOOT=nfs
et à la ligne
MODULES=most
changer en
MODULES=netboot
A partir de maintenant, la configuration du noyau linux a changé, et il va pouvoir enfin démarrer en NFS. Enfin presque, puisqu'il faut quand même reconstruire une partie du noyau :
apt-get install linux-image-generic
#dpkg-reconfigure « linux-image-'uname -r' »
update-initramfs -u
Et voilà, normalement après ça vous avez une image toute neuve et prête à fonctionner en nfs.
Ensuite, une dernière chose à configurer : Quand un PC client va se connecter et charger le NFS, il aura d'ores et déjà une adresse IP, donné par le DHCP au lancement de la procédure de boot. Mais si on le laisse faire, une fois linux démarré, il pourrait cherché à relancer une procédure d’acquisition d'adresse, ce qui aurai pour conséquence probable de faire casher Linux car ce dernier n'aurai alors plus accès à sa base NFS. Ce serai donc très gênant d'avoir un système qui, parce qu'il marche bien, ne marcherai pas. Donc pour l’empêcher de boucler bêtement dans ce problème, il ne faut donc pas oublier de configurer l’acquisition d'adresse IP en manuel, de façon a ce qu'elle ne s'amuse pas à changer quand ça lui chante.
C'est donc ici que ça se passe :
vi /etc/network/interfaces
Et on change
iface eth0 inet dhcp
par
iface eth0 inet manual
Et voilà, vous pouvez lacher la prise en main de linux en quittant le chroot
exit
Voila, félicitation, votre linux est désormais prêt à tourner en NFS. Cependant, rien n'est encore totalement terminé sur le serveur.
Troisième Étape : Configuration du serveur NFS
Et oui il reste encore une certaine quantité de choses à installer sur votre serveur debian. Pour commencer, il faut simplement installer le serveur nfs :
apt-get install nfs-kernel-server
Une fois ce petit outil installé, il va falloir lui préciser où se situe la partition nfs à partager.
Ca se passe dans le fichier /etc/exports
/srv/ubuntu IpdesClients (pour moi c'est 192.168.1.* pour couvrir toute la plage IP)(rw,no_root_squash,async,subtree_check)
N'oubliez pas de relancer le service après chaque modification de ce fichier via cette commande :
sudo service nfs-kernel-server reload
ou
exportsfs -a
Voila, votre serveur nfs est prêt.
Voila, en fait on dirait pas comme ça mais vous avez terminé la configuration de votre serveur ! Alors ? Heureux ? J'espère ! Parce que c'est pas encore terminé, il y a encore du travail !
Quatrième Étape : Installation sur le système client.
Nous allons enfin aborder la problématique du système client.
Pour être clair, cette solution est envisageable dans un cas particulier : vous voulez booter via un support amovible bootable du style USB avec Grub2 dessus, ou alors vous possédez déjà un linux d'installé sur votre machine, muni de grub2 également, et vous voulez quand même conserver cette version.
Et oui car l’intérêt de cette méthode, c'est qu'elle laisse le choix au démarrage, entre la version en LAN, ou un système local, comme Linux ou même pourquoi pas Windows ou MacOS.
Si en plus on imagine que les fichiers personnels sont séparés, cela permet en cas de panne du serveur où est contenu Linux, de pouvoir quand même travailler via les versions installées sur les machines.
Donc, on va commencer. Déjà, un conseil, effectuez cette technique sur une machine banché au serveur en local ; déjà pour pouvoir communiquer avec lui via ssh, ce qui est plus agréable que de devoir être sur le serveur en question, et ensuite pour éviter d'avoir recours à des supports amovibles pour transporter les images et autres fichiers nécessaires.
On va d'abord préparer le terrain. Une fois en mode sudo, vous allez vous rendre dans le dossier /boot/grub (cd) de votre disque dur actuel, et effectuer cette commande :
mkdir LAN
cd LAN
Voila, on va se placer dans ce dossier pour placer les fichiers de linux en question. Maintenant assurez vous d'être sur le même réseau que le serveur, et que ce dernier est bien équipé de ssh.
On va aller chercher les deux fichiers de configuration de linux pour les mettre en local.
Voici la commande :
scp login@Adresse-serveur:/srv/ubuntu/boot/vmlinuz-votreversiondedistrib-generic vmlinuz
scp login@Adresse-serveur:/srv/ubuntu/boot/initrd.img-votreversiondedistrib-generic initrd.img
Voila, normalement votre dossier /boot/LAN est équipé des dernières images du noyau linux. Ce sont des fichiers extrêmement important, car ceux sont eux qui vont avoir les compétences pour lancer le NFS.
Une fois ça fait, il va falloir aller dans les fichiers de configuration de grub2, situé dans /etc/grub.d.
Ici, vous allez créer un nouveau fichier nommé 11_OnLANLinux
touch /etc/grub.d/11_OnLANLinux
Dans ce fichier, voici ce qu'on va y mettre :
#!/bin/sh
exec tail -n +3 $0
menuentry 'Ubuntu On Lan by Nak @ Your Mom'
{
insmod ext2
insmod fat
insmod ntfs
search --no-floppy --fs-uuid
linux /boot/LAN/vmlinuz root=/dev/nfs nfsroot=AdresseIPdevotreServeurNFS:/srv/ubuntu/ ip=dhcp rw quiet splash
initrd /boot/LAN/initrd.img
}
Comme on est sous Grub 2, il est nécessaire de recréer à chaque modification, le fichier de configuration général. Pour ce faire, il faut effectuer la commande suivante :
update-grub
Et voilà, normalement en dessous de vos linux habituels, vous devriez avoir votre distribution en ligne accessible.
Vous pouvez maintenant redémarrer sur ce nouveau système !
Cinquième Étape : LDAP et autres configuration de comptes
Pour le moment, votre système Ubuntu ne peux fonctionner qu'avec le compte que vous lui aviez paramétré pendant son installation. Quand on dispose d'une structure LDAP de comptes centralisé sur un réseau, il est alors nécessaire de lier la distribution Ubuntu avec tout ces comptes.
Mais tout l’intérêt est là. Vous avez entre les mains une distribution linux tout ce qu'il y a de plus normale et fonctionnelle. Par conséquent, rajouter quelque chose ou installer un paquet est aussi simple que sur une distribution classique.
Pour ldap, il faut utiliser votre gestionnaire de paquet préféré :
sudo apt-get install libpam-ldap libnss-ldap
Alors par contre, attention, ldap est a manier avec précaution. Veillez à connaître toute la configuration de votre serveur ldap pour être sur de ne pas vous tromper, sinon vous risquez de perdre totalement le contrôle de votre linux, et vous serez obliger de retourner en mode chroot.
Une fois ça fait, vous pourrez redémarrer, et vous logger avec votre compte stocké sur le ldap.
Ensuite, une dernière chose : Il est possible que certaines applications comme Thunderbird, rencontrent des problèmes pour se lancer. Dans ce cas, veillez à installer nscd. Ce dernier générera le cache nécessaire a son bon fonctionnement.
Voila, félicitation, vous avez un Linux en ligne tout neuf !
Enjoy !
NOTES :
Penser à fixer le serveur débian sur une IP précise avec le fichier /etc/network/interfaces. Ça évite de lui courir après sur le DNS.
Voici une petite copie du fichier de configuration.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth1
allow-hotplug eth1
iface eth1 inet static
address 192.168.0.8 (à voir dans votre cas)
netmask 255.255.255.0
gateway 192.168.0.252 (idem)
16 notes · View notes