Comment partitionner?

Bonsoir,
j’installe debian sur une VM, j’aimerais partitionner au maximum
c’est pour une utilisation pour du dev, donc je vais installer quelques IDE qui prendront un peu de place
android studio, codeblocks, netbeans
Dans quelles partitions ca s’installe tout ca? de mémoire les apps peuvent s’installer dans 2 partitions mais je ne sais plus lesquelles

Et quelles partitions devraient être accessible en lecture seule? comme ca je les sépare de la racine.

Merci

Qu’entends-tu par “partitionner au maximum” ?

Si tu veux séparer au maximum, je te conseille d’utiliser des volumes logiques LVM et non des partitions. Les volumes logiques sont plus faciles à redimensionner que les partitions, à conditions d’avoir laissé de l’espace libre dans le groupe de volumes au lieu de tout allouer pendant l’installation (erreur de l’installateur en mode assisté, en plus des tailles inadaptées).

Les applications installées par des paquets Debian s’installent en grande partie dans /usr. /usr et /boot peuvent être en lecture seule en temps normal, sauf lors de l’installation, suppression ou mise à jour de paquets bien sûr. Les autres répertoires système séparables (/home, /tmp, /var) peuvent difficilement être en lecture seule.

Les applications installées par d’autres moyens peuvent s’installer dans /opt ou /usr/local.

Il y a des travaux pour pouvoir utiliser une racine en lecture seule comme /usr, mais ce n’est pas encore abouti.

voilà ce que je voulais c’était séparer au maximum pour minimiser les risque car j’ai eu quelques déconvenues en utilisant debian en OS principal par le passé(je sais ca ne les minimise pas si je suis trop radin sur l’espace alloué)^^.

D’accord, alors mon but n’est pas de mettre le maximum en lecture seul, mais si certaines partitions n’ont pas d’intérêt à être en lecture écriture autant les mettre en lecture seule. Donc apparemment aucune partition ne devrait rester en lecture seule.

Donc si je comprend bien pour une workstation qui va servir entre autre a faire du dev je devrais séparer
-SWAP 4Go (autant que de RAM allouée a la VM)
-/ 5Go (parce que je le vaut bien)
-/boot 2Go (par sécurité)
-/tmp 5Go ( au cas où je manipule des iso)
-/usr 10Go (aucune idée de l’espace nécessaire là)
-/opt 10Go
-/var 5Go (pour être safe sur les log)
-/var/mail 10Go (un client mail enregistre les mails sur var mails ou dans home?)
-/home 20Go (alors là je ne sais pas si les fichiers sources des IDE iront dans home ou ailleurs?)
-Non alloué 20Go

/boot n’a pas besoin d’autant d’espace. Il ne contient que les noyaux et leurs initramfs (25 Mo par noyau) et le chargeur d’amorçage (20 Mo pour GRUB).

La racine n’a pas besoin d’autant d’espace si /usr est séparé.

Selon les logiciels installés, /usr peut occuper plus de 10 Go.

Séparer /usr n’a d’intérêt que s’il est monté en lecture seule.

Séparer /boot n’a d’intérêt que s’il est monté en lecture seule ou si la racine est un volume logique LVM ou chiffré et /boot est une partition classique.

je te remercie, sans ces conseils je me serais gamélé puis je me serais demandé comment ca se fait.

Donc pas de usr, en revanche j’utiliserais LVM donc je garde le boot et prendrais 100Mo

Dans quel cas peut on avoir plusieurs noyau sur un système?

Quand tu le décides.
Il peut y avoir des mises à jour de sécurité du noyau, pou tu peux avoir besoin d’un pilote qui n’existe pas dans ton noyau habituel, et dans ce cas, tu installes un autre noyau, et tu choisis au boot celui que tu veux, pour tester.
Une fois que tu as fini, tu gardes juste le noyau que tu préfères pour la prod.
Mais tu peux en avoir pour plusieurs usages aussi (noyau RT ou pas pour tourner en machine de bureau ou serveur, par exemple), et en choisir un comme étant celui par défaut.

Du coup, ça, c’est peut être un peu limité, ça ne permet que 3/4 noyaux en même temps.
(tu me diras, ce n’est pas tous les jours qu’on teste des noyaux).

Quel type de VM ? Et quel OS pour l’hôte ?

Faire du développement demande pas mal de ressources en général (entrées/sorties, CPU, mémoire, espace disque, …) Ce n’est pas pour rien que souvent les meilleures machines sont réservées aux développeurs dans les entreprises.
Quel genre de développement et dans quel domaine ?

Je n’ai aucune idée de la place prise par ce genre d’environnement. Souvent la place prise par les outils est faible par rapport à celle prise par les dépendances et par les fichiers générés lors de la compilation.
Si vous allez jusqu’à la construction de paquets, vous avez un ordre de grandeur de la place nécessaire pour construire un paquet Debian dans les journaux de construction que vous accédez depuis la page développeur relative au paquet source.

Pour vous donner une idée, un simple paquet source avec des dépendances très limitées (build depends raisonnables, sources gérés avec git-buildpackage) peut nécessiter 16Go d’espace disque temporaire pour une seule construction.

fp2@debpacha:~$ df -hT /data/devel/pkgs
Sys. de fichiers             Type Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/pacha_vg-data_lv ext4   125G     21G  103G  17% /data
fp2@debpacha:~$ du -h -s /data/devel/pkgs
13G	/data/devel/pkgs
fp2@debpacha:~$ du -h -s /data/devel/pkgs/*
4,1M	/data/devel/pkgs/build_amd64.log
12G	/data/devel/pkgs/buildarea
4,0K	/data/devel/pkgs/fakeroot.rules
12K	/data/devel/pkgs/lapack.rules
548K	/data/devel/pkgs/of_build.log
183M	/data/devel/pkgs/OpenFOAM-2.1.x
228M	/data/devel/pkgs/OpenFOAM-4.1
16K	/data/devel/pkgs/openfoam_4.1+dfsg1-1.debian.tar.xz
4,0K	/data/devel/pkgs/openfoam_4.1+dfsg1-1.dsc
10M	/data/devel/pkgs/openfoam_4.1+dfsg1-1_unstable_clang.log
604M	/data/devel/pkgs/openfoam_4.1+dfsg1-2
24K	/data/devel/pkgs/openfoam_4.1+dfsg1-2pre.debian.tar.xz
4,0K	/data/devel/pkgs/openfoam_4.1+dfsg1-2pre.dsc
26M	/data/devel/pkgs/openfoam_4.1+dfsg1.orig.tar.xz
fp2@debpacha:~$ 

Ceci est la première tentative avec un répertoire de construction sur le disque dur.
En le déplaçant sur un SSD

fp2@debpacha:~/devel$ du -h -s buildarea/
16G	buildarea/
fp2@debpacha:~/devel$ df -hT $PWD
Sys. de fichiers             Type Taille Utilisé Dispo Uti% Monté sur
/dev/mapper/pacha_vg-home_lv ext4    24G     16G  7,4G  69% /home
fp2@debpacha:~/devel$ 

Naturellement je vous conseille fortement d’utiliser LVM

fp2@debpacha:~$ lsblk
NAME                 MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda                    8:0    0 111,8G  0 disk 
├─sda1                 8:1    0     2G  0 part /boot
└─sda2                 8:2    0 109,8G  0 part 
  ├─pacha_vg-root_lv 254:3    0     8G  0 lvm  /
  └─pacha_vg-home_lv 254:4    0    24G  0 lvm  /home
sdb                    8:16   0 931,5G  0 disk 
├─pacha_vg-swap_lv   254:0    0    12G  0 lvm  [SWAP]
├─pacha_vg-var_lv    254:1    0     4G  0 lvm  /var
├─pacha_vg-data_lv   254:2    0   128G  0 lvm  /data
└─pacha_vg-tmp_lv    254:5    0     8G  0 lvm  /tmp
sr0                   11:0    1  1024M  0 rom  
fp2@debpacha:~$ 

En résumé : pourquoi une machine virtuelle ?
Si vous êtes à fond dans la philosophie de développement à la Debian, le paquet sbuild vous permet de gérer un espace de construction séparé ( chroot ) avec uniquement les dépendances de construction installées (au moment de la construction, donc prévoir soit une liaison internet très rapide soit un système de cache des dépôts de paquets + une machine de compétition).

En conclusion, prévoir de place pour un répertoire buildarea .
NOTE: l’unique paquet source openfoam crée un ensemble de bibliothèques et de programmes scientifiques de résolution d’équations différentielles : mécanique des fluides, combustion, …

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

Je ne sais pas si opt va te servir à grand chose.
/usr contient beaucoup de choses. /usr/local contient ce que tu installeras toi (via apt). 10Go pour la partition qui contient /usr/local est un peu limite si tu as une utilisation desktop (firefox, vlc, libreoffice,Qt,GTK, etc …).

Je te conseille de faire un partitionnement auto avec /home séparé. Ça va te faire 3 partitions:
/
swap
/home

Je veille à avoir 20Go pour /, la swap par défaut et le reste ds /home.

Si tu as eu des déconvenues (quelle genre ?) par le passé, je ne suis pas sûr qu’un partionnement multiple soit la solution à tout. Si /var ou /tmp ont tendance à prendre beaucoup de place alors pourquoi pas (je n’ai jamais eu à gérer un serveur mail) mais sinon les bonnes pratiques (pas de ppa, dépôts officiels uniquement) suffisent à garder un système sain.

Android studio c’est gros, plusieurs Go et ça s’installe dans le dossier de l’utilisateur. Je ne suis pas sûr qu’il y ait un paquet debian officiel mais si c’est le cas il sera ancien.
Perso j’utilise une vieille version du SDK qui fonctionne encore avec ant. Vim est mon éditeur.

P.S: $ man hier si tu cherches le rôle d’un dossier

Du coup, ça, c’est peut être un peu limité, ça ne permet que 3/4 noyaux en même temps.

Au final je me suis donné 1Go pour le boot

Quel type de VM ? Et quel OS pour l’hôte ?

L’hôte est windows 10, ce sera une VM sous virtualbox

Quel genre de développement et dans quel domaine ?

Je suis un peu touche à tout, un peu de web, beaucoup de java sous netbeans, un peu de C.

Pour vous donner une idée, un simple paquet source avec des dépendances très limitées (build depends raisonnables, sources gérés avec git-buildpackage) peut nécessiter 16Go d’espace disque temporaire pour une seule construction.

Aie, ca devient difficile de prévoir l’espace suffisant pour tmp.

Tout ce qui n’est pas /boot est dans un groupe LVM

En résumé : pourquoi une machine virtuelle ?

Parce que j’ai besoin de windows a côté, et que c’est bien plus simple d’installer le hardware avec windows.

En conclusion, prévoir de place pour un répertoire buildarea .

Je n’ai pas vu de répertoire data dans debian. C’est vous qui l’avez ajouté?

Finalement j’ai pas mis d’opt car j’ai pas séparé l’usr j’ai fait :
-swap 4Go
/ 30Go
/boot 1Go
/tmp 10 Go (peut être insuffisant du coup)
/var 5Go
/home 20Go
espace LVM dispo 10Go

Si tu as eu des déconvenues (quelle genre ?)

A deux reprises mon système de démarrait plus, une fois il me disait que boot était trop petit tout d’un coup, l’autre fois j’avais chiffré mon install et je ne me souviens plus du message d’erreur au boot.

Android studio c’est gros,

Ca c’est vrai, je me demande s’il est pas plus judicieux de l’utiliser directement sous windows

Le coup de /boot plein c’était vraiment sous Debian ?
Je demande parceque c’est arrivé à qqun sous Ubuntu puis LinuxMint. Les mises à jour de noyau ne supprimaient pas les anciens noyaux. Donc /boot se remplissait et ça avait fini par empĉher la session graphique de se lancer: tout était sur une seule partition donc ça bloquait aussi /var /tmp.
Personnellement, sous Debian, le roulement des noyaux fonctionne très bien. Je n’ai qu’un seul noyau qui occupe /boot, le dernier mis à jour.

Pourquoi aller sur Windows ? Le système occpue encore plus de ressources …
Non reste sur linux, c’'est l’idéal. C’est juste que tu utilises des IDE plutôt gros.

Au contraire, /usr/local contient ce qui n’est pas installé à partir des paquets.

Je déconseille le partitionnement automatique (assisté). Le risque de se retrouver avec des tailles inadaptées est trop important.

Un avantage de LVM est de ne pas trop avoir à se poser de questions sur les tailles pendant l’installation. On commence avec des tailles minimum “suffisantes” et on agrandit quand ça ne suffit plus. 10 Go d’espace libre pour les besoins futurs, ça me paraît peu. Cependant avec une machine virtuelle, on a en plus l’option d’agrandir le disque virtuel ou d’en ajouter un autre et de l’inclure dans le groupe de volumes.

Je ne pense pas que l’espace disque temporaire de construction dont parle @littlejohn75 soit dans /tmp.

Mince, j’ai encore confondu avec OpenBSD. Désolé.

effectivement, a un moment j’utilisais xubuntu, peut être que c’était là que j’avais eu un problème de /boot,
Mais j’étais sous debian quand j’utilisais le chiffrement et là un beau jour ca ne démarrais plus, et moi et les messages d’erreur ca fait 2 ^^

Non reste sur linux, c’'est l’idéal. C’est juste que tu utilises des IDE plutôt gros.

Je me vois mal me passer d’IDE ^^, et d’une manière ou d’une autre il me faudra windows que ce soit dans une VM ou en host.
Mais niveaux pilotes c’est quand même plus simple d’avoir windows en host, je ne sais pas si sous androidstudio sous debian on peut activer l’accélération intel HAXM par exemple

Et il me semble avoir déjà eu un prob d’usb 3.0 reconnu usb 2.0 sous linux

Ubuntu …
Pour le chiffrement, j’ai n’ai aucune expérience. On a qu’à dire que c’est aussi la faute d’Ubuntu.

Pour le matos, je le choisis en fonction du logiciel libre (donc oui pour intel et amd, mais surtout pas de broadcom nvidia). C’est un luxe que tout le monde n’a pas je reconnais.

intel HAXM je connais pas mais stackoverflow dit HAXM is only needed on Windows and OS X. On Linux, you need to have KVM installed.
Ça sert à ce que la machine virtuelle ait accès au processeur c’est ça ?
Androidstudio en a besoin pour émuler des appareils android ? Ou bien c’est juste si tu l’utilises ds un VM ?

KVM permet aux machines virtuelles de se servir directement du processeur de la machine. J’avais joué avec KVM/Qemu un peu pour remplacer virtualbox. Ça marchait très bien, c’est rôdé, rien à dire.

Pour l’histoire usb2/3. Je crois que le bios déclare les ports usb et leurs versions au système d’exploitation. Il me semble que linux ne tient pas toujours compte de cette information. C’est bien lorsque ton bios dit n’importe quoi (comme le mien qui déclare de l’usb1!! au lieu de usb2), linux reconnait le matos et force un protocole supérieur malgré tout.
Dans ton cas, peut être que linux n’a pas reconnu le matos et a préféré faire confiance à ce qui lui été dit

Je crois plutôt qu’il n’en tient jamais compte. Il n’en a pas besoin. Il lui suffit de se baser sur les identifiants PCI du contrôleur hôte USB pour connaître son type et ses capacités : UHCI/OHCI = USB 1, EHCI = USB 2, xHCI = USB 3.

pour ce qui est de HAXM ou KVM, je sais pas du tout ce que ca fait concrètement, j’ai juste lu le mot accélération quelque part et faut dire gradle est super lent :frowning:

Bon je vais peut être retenter l’expérience…

Ou comment être sûr d’utiliser au plus mal les ressources de votre machine :disappointed_relieved:
Je vous invite, à titre d’exercice, à imaginer les instructions exécutées lors d’une opération extrêmement courante lors du développement d’un logiciel : stat

man lstat
       int stat(const char *pathname, struct stat *buf);
       int fstat(int fd, struct stat *buf);

A partir du nom du fichier on doit retrouver un descripteur selon le type de système de fichiers et faire l’appel système correspondant. L’appel système est émulé pua VirtualBox comme un appel système système natif Windows 10. Il faut donc trouver le handle dans le système de fichiers hôte (vraisemblablement NTFS).
Vous me direz ça marche, pourquoi s’inquiéter ? Je peux vous répondre pourquoi faire simple quand on peut faire compliqué :smile:
En pratique, si VirtualBox vous propose d’attribuer un certain espace disque pour toute la machine virtuelle, peu importe comment vous partitionnez cet espace dans la VM (avec des FS de types variés) tout se retrouve comme des objets de l’espace hôte.
Un des problèmes liés au passage par une émulation concerne les nombreux fichiers à durée de vie limitée créés et effacés lors du développement (compilation ou fichiers temporaires de l’IDE ). Comment la sémantique “ce fichier est temporaire” est traduite au Windows hôte ? De même, que deviennent certaines indications peu courantes comme celles qu’on trouve dans

man fallocate

sont prises en compte ?

Côté serveur ou côté client ?

Je n’ai jamais utilisé, y-a-t-il des avantages décisifs de développer sous Debian par rapport à un développement sous W10 ? ( par exemple pas de licence payante, plus de bibliothèques, … )

Un Windows à côté, cela s’appelle un dual boot :slight_smile:
La société canonical n’a pas arrangé la situation en faisant croire qu’on pouvait avoir un Linux utilisable et administrable à coup de clic-clic sur des machines spécifiquement conçues pour Windows.

Dans le cadre de votre tendance touche à tout avez-vous testé le nouveau produit de Microsoft Debian sous Windows 10 ? En console, certes mais avec build-essential et git-buildpackage vous avez déjà de quoi vous amuser pour du C et C++.

Cordialement,
Regards,
Mit freundlichen Grüßen,
مع تحياتي الخالصة


F. Petitjean
Ingénieur civil du Génie Maritime.

« Ubuntu is an ancient african word, meaning “I can’t configure Debian” »
http://www.urbandictionary.com/define.php?term=ubuntu

ok donc la virtualisation n’est pas une solution miracle on perd en rapidité d’exécution

le dual boot c’est ce qui se rapproche le plus de ce que je souhaite faire donc, niveau windows, c’est pas top pour le dev, certains outils sont vraiment orienté dev linux.
On a parfois a recompiler des bibliothèques pour windows, certains IDE (codeblocks) sont un peu buggé et proposent des templates qui sont reconnus pour ne pas fonctionner…
Sans compter que ca complique tout niveau installation compilateurs etc…
Généralement on doit installer plusieurs outils qui simulent la console linux… autant installer directement linux.

Pour ce qui est du noyau linux intégré a windows, je n’ose pas trop l’utiliser, je préfère autant utiliser une vrai distri, surtout qu’il me semble que windows a intégré ubuntu et non pas debian.

Pour le web je fais surtout du php et un peu de js html…