{"id":22437297,"url":"https://github.com/ustclug/101strap","last_synced_at":"2025-06-25T23:32:05.320Z","repository":{"id":151279177,"uuid":"611943634","full_name":"ustclug/101strap","owner":"ustclug","description":"Linux 101 Desktop VM building scripts","archived":false,"fork":false,"pushed_at":"2025-03-16T01:57:34.000Z","size":85,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-20T18:19:45.225Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ustclug.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-03-09T21:36:54.000Z","updated_at":"2025-03-16T01:57:38.000Z","dependencies_parsed_at":"2025-03-27T08:44:18.129Z","dependency_job_id":"9b0dd825-9ef7-4771-a25a-4f70f756ab0a","html_url":"https://github.com/ustclug/101strap","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ustclug/101strap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustclug%2F101strap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustclug%2F101strap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustclug%2F101strap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustclug%2F101strap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ustclug","download_url":"https://codeload.github.com/ustclug/101strap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ustclug%2F101strap/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261972908,"owners_count":23238539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-12-06T00:12:25.269Z","updated_at":"2025-06-25T23:32:05.302Z","avatar_url":"https://github.com/ustclug.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 101strap\n\n## Introduction\n\nThis project aims to automate the generation of XUbuntu, which will be used as an example in [linux101](https://101.lug.ustc.edu.cn/). This project developed by [taoky](https://github.com/taoky), [RTXUX](https://github.com/RTXUX), and [xuao1](https://github.com/xuao1).\n\n## Build\n\n```shell\nsudo modprobe nbd\ndocker build -t local/101strap .\ndocker run -it --privileged --rm -v $(pwd):/srv:ro -v ~/tmp/101:/target -v /usr/lib/ovftool:/Ovftool:ro -v /dev:/dev -e NBD=/dev/nbd0 local/101strap:latest\n```\n\n**Note:**\n\n- The generation order for this project is: **qcow2 -\u003e vmdk/vdi -\u003e ova**. All of the processes are **automated**, and all you need to do is to run the three commands mentioned. However, before that, you need to install the \"OVF Tool for Linux Zip\" [from Broadcom](https://developer.broadcom.com/tools/open-virtualization-format-ovf-tool/latest). Please note that this project generates **XUbuntu 24.04**, and if you wish to generate other versions of XUbuntu, you need to modify some content in the scripts.\n\n- If there is any problems exporting to the ova file, you can also choose to manually export it using vmdk/vdi. You need to import the VMDK into VMware Workstation and configure it accordingly, import the VDI into VirtualBox and configure it accordingly, and then export each as an OVA.\n\n- If you only want to automate the process of generating a .qcow2 image, or generating ova only, you can run the building container like:\n\n  ```sh\n  # generate qcow2 disk\n  docker run -it --privileged --rm -v $(pwd):/srv:ro -v ~/tmp/101:/target -v /dev:/dev -e NBD=/dev/nbd0 local/101strap:latest /bin/bash /srv/101strap_img\n  # convert and generate ova\n  docker run -it --privileged --rm -v $(pwd):/srv:ro -v ~/tmp/101:/target -v /usr/lib/ovftool:/Ovftool:ro -v /dev:/dev -e NBD=/dev/nbd0 local/101strap:latest /bin/bash /srv/101strap_disk\n  ```\n\n- If you want more information, see the Devlog.\n\n## Run\n\nYou can test the generated qcow2 file locally using the following command.\n\n```shell\nqemu-system-x86_64 -machine accel=kvm -m 2048m -hda ./root.qcow2 -bios /usr/share/ovmf/x64/OVMF.fd -netdev user,id=net101 -device e1000,netdev=net101 -vga vmware\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fustclug%2F101strap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fustclug%2F101strap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fustclug%2F101strap/lists"}